画像(logo)

HOME/[C言語DXライブラリ]ブロック崩しの作り方 目次/初日 ブロック崩しの考え方

広告

[C言語 DXライブラリ ブロック崩しの作り方]
初日 ブロック崩しの考え方

広告

↓2016年02月29日発売↓

12歳からはじめる ゼロからの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」

といった具合です。

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

画像(cdxb_1_1)

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

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

画像(cdxb_1_2)

こんな感じになります。

この時に決して

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

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

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

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

画像(cdxb_1_3)

折り返しができました!

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

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

ブロックの当たり判定

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

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

画像(cdxb_1_4)

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

ブロックの表示

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

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

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

次回

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

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓2017年06月16日発売↓

やさしいC 第5版 (「やさしい」シリーズ)

新品価格
¥2,700から
(2017/5/1 13:05時点)

↓2014年08月09日発売↓

新・明解C言語 入門編 (明解シリーズ)

新品価格
¥2,484から
(2017/5/1 13:08時点)

↓2016年02月20日発売↓

新・解きながら学ぶC言語

新品価格
¥2,160から
(2017/5/1 13:10時点)

↓2017年02月11日発売↓

C言語プログラミング基本例題88 88

新品価格
¥3,024から
(2017/5/1 13:12時点)

↓2016年12月15日発売↓

Cの絵本 第2版 C言語が好きになる新しい9つの扉

新品価格
¥1,490から
(2017/5/1 13:13時点)

↓2017年02月08日発売↓

新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ)

新品価格
¥2,700から
(2017/5/1 13:15時点)