2011年4月20日水曜日

Androidでゲーム ブロック崩し編                 6回目:ボールとブロックの交差判定

今度は、ボールとブロックの交差判定。

前回、板とボールの交差判定を行ったので、前回と同じような方法を使って
矩形同士の交差判定を行う。

大まかな流れは

boolean型のメソッドを作る
 ↓
交差した時の処理を作る
 ↓
呼び出す

大まかな流れも特に変更は無い。

最後の、run() メソッドでcollisionDetection()
を呼ぶところも変わらない。

但し、public boolean collideWidth(Ball ball) {}の記述するクラスファイルは、
ブロックの設定を行っているクラスファイルの中に記述した。

だがしかし、ここからがちょっと厄介なことになる。

ボールとぶつかったブロックをどうするか・・・。

ぶつかったら、ブロックは消えるだろうと思っていたら、そう簡単には消えてくれない。

それでは、フラグでも立てればいいのか?
と思っても、駄目。
見えている部分は消えても、座標値は生きているから。

ではどうするか。

2通り思いつくが、簡単に作りたいと思っているので、簡単な方を考える。
ArrayListを呼び出しての方は使わない。

Androidのメソッドには、Pointというメソッドがある。これは、Javaにもあった物。
使い方は、Javaと変わらない。
画像の呼び出しのように原型とどめて無いじゃんってくらい変わられると困る(私が・・・)。

Blockを設定したクラスファイルに
まず、ぶつかったら何処かに隠しておく場所を定数で作る
その次に、ボールとぶつかったら、その隠し場所に移動するためのsetterを作っておき、

最後にpublic void collisionDetection() {}
のブロック内に作ったsetterを呼べば、
なんてことでしょう、先ほどまで其処にあったブロックが何処かに
行ってしまいましたってことが出来る。

参考
android reference:Point


















その他のブロック崩し関連

0 件のコメント:

コメントを投稿