当たり判定(自機と敵)・シーン切り替え - Javaでシューティングゲームを作ろう
目次
- Javaでシューティングゲームを作ろう
- 自機の左右移動
- 弾発射・はみ出しチェック
- 敵登場・仮想画面
- 当たり判定(敵と弾)・スコア
- 当たり判定(自機と敵)・シーン切り替え
- クラス化
- 継承・Vectorによるキャラ管理・サウンド
- パワーアップ・複数種類の敵
- ペンギンシューティング
今回の題材
- 当たり判定(自機と敵)
- シーン切り替え
一式ダウンロード
ソースの解説
Shooting5クラス フィールド
int scene;
大抵のゲームはゲーム中の状態だけではなく、タイトル画面・ゲームオーバー画面など、複数のシーンを持っています。そのシーンを管理するのが変数sceneです。この変数が0のときタイトル画面、1のときゲーム中、2のときゲームオーバー画面になります。Shooting5クラス initメソッド
scene = 0;
最初はタイトル画面から始まるのでシーン変数を0に設定しています。Shooting5クラス runメソッド
シーンを分けたことや、ゲームメイン処理が長くなってきたことから、それぞれのシーンに応じた処理をメソッド化しました。- タイトル画面 … gameTitle
- ゲーム中 … gameMain
- ゲームオーバー画面 … gameOver
Shooting5クラス gameTitleメソッド
タイトル画面の処理を行います。
if (keyEnter) scene = 1;
エンターキーが押されたらシーン変数をゲーム中状態にします。
gv.setFont(new Font("Arial", Font.BOLD, 28));
タイトル画面用のフォントをフォント名「Arial」、太字、28ポイントに設定しています。Shooting5クラス gameMainメソッド
ゲーム中の処理を行います。
if (jx + 32 > ex && jx < ex + 32 &&
jy + 32 > ey && jy < ey + 32) {
scene = 2;
}
自機と敵の当たり判定を行います。自機と敵が一部分でも重なったときに当たったと判定します。弾と敵との当たり判定と同じです。当たった場合は、シーン変数をゲームオーバー画面にします。