画像(logo)

HOME/[JAVA言語]ブロック崩しの作り方 目次/初日 ブロック崩しの考え方

[JAVA言語 ブロック崩しの作り方]
初日 ブロック崩しの考え方

広告

↓2017年04月19日発売↓

カラー図解 Javaで始めるプログラミング 知識ゼロからの定番言語「超」入門 (ブルーバックス)

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

目次へ戻る

ブロック崩しの考え方

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

・ボールの移動

・壁との当たり判定

・跳ね返りの角度計算

・自機バーの移動

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

・ブロックの表示

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

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

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

ボールの移動と跳ね返り

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

これができれば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」

といった具合です。

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

画像(jb_1_1)

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

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

画像(jb_1_2)

こんな感じになります。

この時に決して

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

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

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

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

画像(jb_1_3)

折り返しができました!

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

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

ブロックの当たり判定

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

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

画像(jb_1_4)

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

ブロックの表示

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

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

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

次回

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

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓2016年06月25日発売↓

新・明解Java入門 (明解シリーズ)

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

↓2017年04月18日発売↓

Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

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

↓2017年05月17日発売↓

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

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

↓2017年04月04日発売↓

Java 第2版 入門編 ゼロからはじめるプログラミング (プログラミング学習シリーズ)

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