C言語 入門 ブロック崩しの作り方

初日 ブロック崩しの考え方

入門プログラムの定番のブロック崩しになります!

HOME/ブロック崩しの作り方 目次/初日 ブロック崩しの考え方/

広告

↓2016年02月29日発売↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

新品価格
¥2,462から
(2016/5/10 22:16時点)

もっと!C、C++言語本

目次へ戻る

ブロック崩しの考え方

ブロック崩しを作るポイントを挙げるとすると

・ボールの移動

・壁との当たり判定

・跳ね返りの角度計算

・自機バーの移動

・自機バーとの当たり判定

・ブロックの表示

・ブロックとの当たり判定

こんなトコロではないでしょうか?

主なところを見ていきましょう!

ボールの移動と跳ね返り

ブロック崩しの肝の部分ですね!

これができれば8割完成したようなモノです。

まず移動角度と跳ね返り角度の計算ですが、これには入射角が何度で跳ね返りの角度は対称になるから・・・。

なんて事を考えるとけっこうハマるのでそんな事は考えません。

ここは「x」と「y」の増加のみで考えます。

しかも基本の増加量は同じで「x」と「y」の増える方向を変えるだけですべての方向にボールを飛ばします!

「x」と「y」を同じずつ増やす

では試しに「x」と「y」を同じずつ増やしてみましょう。

「x」が「0」なら「y」も「0」

「x」が「1」なら「y」も「1」

「x」が「2」なら「y」も「2」

「x」が「3」なら「y」も「3」

といった具合です。

そしてそこに点を打っていくと

画像(b_1_1)

こんな感じになりますよね。

これはどこからはじめても同じような結果になるので下の方から点を打ち始めると

画像(b_1_2)

こんな感じになります。

この時に決して

「原点をずれる直線はy = ax + bだからあ・・・。」

なんて中途半端な数学の知識を考えてはいけません。

単純にその時のボールの座標から同じように「x」と「y」を増加(減少)していったらどんな動きになるのかと考えます。

なので途中で「x」だけを減少させれば

画像(b_1_3)

折り返しができました!

これだけであんな複雑に跳ね返ってくれるのかと気になるトコロですがこれが以外にそれっぽくなるのでご安心ください。

もちろんブロックの角に当たった場合やバーを動かしながら跳ね返した場合などを正確にやりたい場合はもっと工夫が必要ですが今回はこの「x」「y」の増減のみで跳ね返しをしたいと思います。

ブロックの当たり判定

壁や自機バーの当たり判定はその壁の座標を超えた場合だけさきほどの「x」または「y」の増減の向きを変えればいいので簡単そうですが、大量にあるブロックそれぞれの当たり判定はどうするのかと気になるトコロだと思います。

これにはあらかじめブロックを配置できる場所をマス目として決めておいて

画像(b_1_4)

そしてそれぞれにブロックがあるかどうかのフラグを付けてボールが移動するたびにまだ残っているブロックの判定も「for」ループなどで一巡させます。

ブロックの表示

ブロックの表示には当たり判定で使ったフラグをそのまま利用します。

同じように「for」ループを使ってブロックフラグがオンの位置にブロックを描いていきます。

では次回は実際にプログラムを組んでいきましょう!

次回

二日目 最低限のプログラム

□ページの先頭へ□

□目次へ戻る□

広告

↓2014年06月20日発売↓

14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編

新品価格
¥2,500から
(2016/5/10 22:17時点)

↓2014年10月25日発売↓

超本格! サンプルで覚えるC言語 3Dゲームプログラミング教室

新品価格
¥3,110から
(2016/5/10 22:18時点)

↓2013年07月25日発売↓

小学生からはじめるわくわくプログラミング

新品価格
¥2,052から
(2016/5/10 22:21時点)

↓2016年05月13日発売↓

小学生からはじめるわくわくプログラミング2

新品価格
¥2,052から
(2016/5/10 22:22時点)

もっと!C、C++言語本

□ページの先頭へ□

□HOME□