第4講 ブロック崩しその2(ボールを動かして壁にぶつかると反射するようにするまで)
第10話 ボールが壁で跳ね返るようにする
第9話の問題の解答例
#include "DxLib.h"
void maru(); //bar(バー)区別するためにボールをmaruとする maru用の変数はmx等と表す。
int mx=10, my=10; //bar(バー)やblock(ブロック)と区別するためにball(ボール)はmaru(まる)とする
const int houkougae = -1; //ほうこうがえ 方向チェンジ
int mx_houkou = -1; //mxの最初の方向
int my_houkou = -1; //myの最初の方向
int kiiro = GetColor(255, 255, 0); //黄色の出席番号を割り振りその番号を箱kiiroに収納
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
  ChangeWindowMode(true); //ウィンドウモードの切り替え
  SetGraphMode(800, 600, 32); //ウインドウサイズの変更
  if (DxLib_Init() == -1)return(-1);  // DXライブラリ初期化処理

  SetDrawScreen(DX_SCREEN_BACK); //裏画像を描画対象に加える(2017/06/28追加) 画面のちらつき対策
  while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {
    maru(); //ボールの位置を計算して、その位置にボールを描く社員
  }

  WaitKey();   // キー入力待ち
  DxLib_End();  // DXライブラリ終了処理
  return 0;
}
void maru() {
  DrawCircle(mx, my, 10, kiiro, true); //ボールを描く
  if (mx
<= 10)mx_houkou *= houkougae;
  if (mx
>= 790)mx_houkou *= houkougae;
  if (my
<= 10)my_houkou *= houkougae;
  if (my
>= 590)my_houkou *= houkougae;
  mx += 2 * mx_houkou;
  my += 6 * my_houkou;
}
コピペ用添付ファイル


実行すると面白いように跳ね返るでしょう。
目標が実現できたので、課題を出して、
第4講は終了とします。

課題は、今までの知識を使って、
ゲーム画面のサイズを横幅800、縦幅800に変更した上で、
赤のブロックを図の位置に描いてください。

完成させるゲームは02天井から、
100の空きを持たせるようにしますので、
ブロックの左端上端の初期位置は(0,100)としましょう。
もし、(800,800)では画面に入りきらない場合には大きさを皆さんが調節してください。
尚、縦幅を600から800に変更しましたので、
  if (my >= 590)my_houkou *= houkougae;
も変更が必要です。
また、ブロックを描く社員sikaku()を雇い、
sikaku()に仕事をさせてください。
ブロックを描く仕事をする社員(関数)の名前を、
sikaku(しかく)とする理由は、
bar(バー)、block(ブロック)の最初の文字が重なるからです。
ブロックの左端の位置をsx、上端の位置をsyと簡略に表現したいからです。
第1講第1話で述べたとおり、
本サイトでは、block_xといった英単語表現はとらずに、
2文字以内またはローマ字にするという方針をとるからです。
英単語で表現すると、
初心者はそこに意味があると思ってしまいます。
ポチと名付けるのは、ハチと区別するためです。
他と区別する以上の意味は名前にはありません。
ですから、ポチ自体には決して意味はないのです。
意味のないところに意味を読み取ってしまう−−−
これが初心者がつまずく大きな原因の一つです。





第9話へ  第5講第1話へ
a

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ