ポンクソフト

弾発射・はみ出しチェック - Javaでシューティングゲームを作ろう

前ページ Javaでシューティングゲームを作ろう TOP 次ページ

目次

  1. Javaでシューティングゲームを作ろう
  2. 自機の左右移動
  3. 弾発射・はみ出しチェック
  4. 敵登場・仮想画面
  5. 当たり判定(敵と弾)・スコア
  6. 当たり判定(自機と敵)・シーン切り替え
  7. クラス化
  8. 継承・Vectorによるキャラ管理・サウンド
  9. パワーアップ・複数種類の敵
  10. ペンギンシューティング

今回の題材

プレイしてみる
一式ダウンロード

ソースの解説

Shooting2クラス フィールド

Image tama;
int tx, ty;
boolean tflag;
tamaは弾の画像が入るImageオブジェクトです。tx,tyは弾の座標です。
弾は常に画面に現れているわけではないので、tflagというフラグ変数を持って弾が画面上に現れているか管理しています。falseのときは画面上になく、trueのときは画面上にあるというわけです。
boolean keyLeft, keyRight, keySpace;
弾発射用のスペースキーが押されたか管理するための変数keySpaceを追加しています。

Shooting2クラス initメソッド

tflag = false;
初期状態では画面上に弾は出ていないので弾フラグをクリアしています。

Shooting2クラス runメソッド

if (jx < 0) jx = 0;
自機が画面左にはみ出さないための処理を行っています。
if (jx > 300 - 32) jx = 300 - 32;
自機が画面右にはみ出さないための処理を行っています。
if (keySpace) {
  if (!tflag) {
    tx = jx + 12;
    ty = jy;
    tflag = true;
  }
}
弾発射を行っている部分です。スペースキーが押されて、なおかつ画面上に弾がなければ(!tflag)、弾のx座標を自機のx座標+12(自機の中央から弾が出る)、弾のy座標を自機のy座標と同じ場所に設定し、弾フラグをセットしています。
if (tflag) {
  if (ty < 0) tflag = false;
  else ty -= 8;
}
弾が画面の上部まで達したら消える処理を行っている部分です。弾が現在画面上にあるとき、弾のy座標が画面の最上部に達したら弾フラグをクリアしています。そうでなければ弾を画面上部に向かって8ドット進めます。

Shooting2クラス paintメソッド

if (tflag) g.drawImage(tama, tx, ty, this);
自機と同じように弾を描画していますが、弾フラグがセットされている(弾が画面上に存在している)ときのみ弾を描画します。
前ページ Javaでシューティングゲームを作ろう TOP 次ページ
このエントリーをはてなブックマークに追加 そっか0

このページに関するコメントをどうぞ

お名前:


n3
Shooting6.javaには当たり判定がどこにも記述されていないのですがよろしければどこに、どういうふうに記述したらよいのか教えてもらえないでしょうか
2017/02/01 21:16

名無しのリーク
香川県ルー餃子のフジフーヅはバイトにパワハラの末指切断の重傷を負わせた犯罪企業
2017/01/29 05:08

名無しのリーク
香川県ルーちゃん餃子のフジフーヅはバイトにパワハラの末指切断の大けがを負わせた犯罪企業
2017/01/28 16:09

名無しのリーク
香川県ルー餃子のフジフーヅはバイトにパワハラの末指切断の重傷を負わせた犯罪企業
2017/01/26 03:03

名無しのリーク
香川県ルー餃子のフジフーヅはバイトにパワハラの末指切断の重傷を負わせた犯罪企業
2017/01/26 03:03

dead ライジング
javaってなに?
2017/01/24 14:29

すみませんが…
tflagの初期がfalseの状態で!tflagがfalseにあたるのがわかりません。
2017/01/05 11:35

missiy
ゲーム制作始めますか
2016/11/04 20:32

デトロイト
おーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
2016/10/12 17:56

デトロイト
日本太郎 YouTube見てください
2016/10/12 17:55

残りを読む »