当たり判定(敵と弾)・スコア - Javaでシューティングゲームを作ろう
目次
- Javaでシューティングゲームを作ろう
- 自機の左右移動
- 弾発射・はみ出しチェック
- 敵登場・仮想画面
- 当たり判定(敵と弾)・スコア
- 当たり判定(自機と敵)・シーン切り替え
- クラス化
- 継承・Vectorによるキャラ管理・サウンド
- パワーアップ・複数種類の敵
- ペンギンシューティング
今回の題材
- 当たり判定(敵と弾)
- スコア
一式ダウンロード
ソースの解説
Shooting4クラス フィールド
int score;
scoreには得点が入ります。Shooting4クラス initメソッド
score = 0;
得点を0点にクリアしています。Javaではint型の変数は宣言したときに0が入るので、無駄といえば無駄な処理なのですが。Shooting4クラス runメソッド
if (tflag) {
if (tx + 8 > ex && tx < ex + 32 &&
ty + 8 > ey && ty < ey + 32) {
score += 100;
ex = (int)(Math.random() * (300 - 32));
ey = -32;
tflag = false;
}
}
弾が発射されていれば、弾と敵との当たり判定を行います。条件が複雑ですが、ようするに弾と敵が一部分でも重なったときに当たったと見なしています。当たった場合は、得点を100点加算し、敵を消して画面最上部に戻し、弾を消します。Shooting4クラス paintメソッド
gv.drawString("SCORE : " + String.valueOf(score), 10, 20);
得点を画面上部左に表示します。drawStringはGraphicsオブジェクトのメソッドで文字列を描画します。描画座標は(10,20)ですが、y座標は文字の上ではなく下なので注意してください。
valueOfはjava.lang.Stringクラスのクラスメソッドで、引数を文字列にして返します。