Upload
craig
View
27
Download
1
Embed Size (px)
DESCRIPTION
ゲームプログラミング体験演習. 2008年5月9日金 情報科学部 米元 聡(准教授). 体験演習の内容. 「シューティングゲーム」を題材に ゲームプログラミングを体験します。 「ソフトウェア演習 Ⅱ (3年前期)」 という講義で実際に利用しているものです。 「高大連携授業」にもほぼ同じ内容のものが あります 「 Java 」というプログラミング言語を用います。. ゲームの概要. 縦スクロールシューティング。 マウス(キー)で自機を操作。 弾を発射 空中用(左クリック) 地上用(右クリック) 敵は地上用と空中用に分かれます。 横座標が重なると撃ってきます。. - PowerPoint PPT Presentation
Citation preview
ゲームプログラミング体験演習
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
地上
32
空中
ステップ⑤: 無敵なのであたり判定を導入しよう
// ⑤ 追加 // あたり判定
を追加
chara.collision(enemy); // あたり判定
ステップ⑥: 自機を好きな絵に変更しよう
// ⑥ 追加 // 自機画像の変更
「 jiki0 」 を 「 jiki1 」 か 「 jiki2 」 に変更可能
合計3種類あるので好きな絵に変えてみよう。
( GP クラス内)public static final String JIKI = "img/jiki0.png"; // 自機画像
ステップ⑦:ボス戦を追加しよう
• // ⑦【 追加】 // ボス戦モード • ※以下のコメント「 // 」をはずす
if (mode==1 && bg.getPos() > GP.H * (GP.N-2) ) mode = 2; // ボス戦モード
完成
お疲れ様でした
キャラクタデザイン嶋村君(米元研究室)
情報科学部でプログラミングを学びませんか?
(高大連携授業もあります)
• web アンケートお願いします。