ゲームプログラミング体験演習 2008年5月9日金 情報科学部 米元 聡(准教授) 体験演習の内容 • 「シューティングゲーム」を題材に ゲームプログラミングを体験します。 • 「ソフトウェア演習Ⅱ(3年前期)」 という講義で実際に利用しているものです。 • 「高大連携授業」にもほぼ同じ内容のものが あります • 「Java」というプログラミング言語を用います。 ゲームの概要 • 縦スクロールシューティング。 • マウス(キー)で自機を操作。 • 弾を発射 – 空中用(左クリック) – 地上用(右クリック) • 敵は地上用と空中用に分かれます。 横座標が重なると撃ってきます。 手順 処理全体の流れをつかもう ステップ①: 背景に絵を追加しよう ステップ②: 縦スクロールの機能をつけよう ステップ③: 敵を追加してみよう ステップ④: 敵の数や種類を変えよう ステップ⑤: 無敵なのであたり判定を導入しよう ステップ⑥: 自機を好きな絵に変更しよう ステップ⑦: ボス戦を追加しよう 最初の状態 • 背景なし • 自機をマウス(キー)で操作 • 左右クリックで弾を発射 • 「Anim2Dfrクラス」を 右クリックし実行してください。 処理全体の流れをつかもう ゲーム、アニメーションでは1秒あたり数十回も画像を 生成・表示することで動いているようにみせます。 パラパラ漫画と同じ原理です。 このシューティングゲームでは // // // // 背景表示 敵キャラの移動・表示 自機の移動・あたり判定・表示 スコア・ライフの表示 を何度も繰り返します。 1コマにつき少しずつキャラクタが動いてきます。 ステップ①: 背景に絵を追加しよう // ①追加// 背景描画 bg.draw(g, this); を追加 ステップ②: 縦スクロールの機能を つけよう // ②追加// 縦スクロール背景更新 if (bg.getPos() < GP.H * (GP.N-1) ) bg.nextPos(); を追加 ステップ③: 敵を追加してみよう // ③追加// 敵キャラの移動・表示 for (int i=0; i < enemy.length; i++) { enemy[i].move(); // 移動 enemy[i].lockOn(chara.x, chara.y); // 発射した? enemy[i].draw(g, this); // 表示 } を追加 ステップ④: 敵の数や種類を変えよう 敵の追加(好きな個数で1つ以上) – 敵の種類: 最大4種類まで(地上2・空中2) – 敵の数: 好きなように設定 0,1,2,3,0,1,2,3,...の順で種類が決定される (GPクラス内) public static final int EN = 12; // 敵キャラの総数12 public static final int ET = 4; // 敵キャラの種類数4 地上 0 空中 1 2 3 ステップ⑤: 無敵なのであたり判定 を導入しよう // ⑤追加// あたり判定 chara.collision(enemy); を追加 // あたり判定 ステップ⑥: 自機を好きな絵に変更 しよう // ⑥追加// 自機画像の変更 (GPクラス内) public static final String JIKI = "img/jiki0.png"; // 自機画像 「jiki0」 を 「jiki1」 か 「jiki2」 に変更可能 合計3種類あるので好きな絵に変えてみよう。 ステップ⑦:ボス戦を追加しよう • // 【⑦追加】// ボス戦モード • ※以下のコメント「//」をはずす if (mode==1 && bg.getPos() > GP.H * (GP.N-2) ) mode = 2; // ボス戦モード 完成 お疲れ様でした キャラクタデザイン 嶋村君(米元研究室) 情報科学部で プログラミングを学びませんか? (高大連携授業もあります) • webアンケートお願いします。
© Copyright 2024 ExpyDoc