キャラクタ動作の練習。
- 課題4用基本プログラムをダウンロードし、解凍する。
- 課題4用のプロジェクトを作成し、ダウンロードしたすべてのファイルをプロジェクトに追加する。
(リソースはすでに作ってあるため、リソースの新規作成は必要ない)- プロジェクトの設定(ddraw.lib, dxguid.lib, winmm.lib)を行い、コンパイル、実行する。
Enemy1_move関数を参考に、4つの動作パターンを作成する。
(敵1は作成済みなので、2からを作成する)
- 敵1(Enemy1_move関数)
画面中央上から下に下りてくる。弾を1発当てると破壊でき、100点が入る。- 敵2(Enemy2_move関数を作る)
GameRect.left + 50の位置から下に下りてくる。 画面3分の1まで来たら斜め下に下りてくる。弾を2発当てると破壊でき、200点が入る。- 敵3(Enemy3_move関数を作る)
GameRect.right - 50の位置から下に下りてくる。 画面3分の1まで来たら斜め下に下りてくる。弾を2発当てると破壊でき、200点が入る。- 敵4(Enemy4_move関数を作る)
画面中央上から下にサインカーブを描きながら下りてくる。 弾を1発当てると破壊でき、300点が入る。[POINT]
Game_init関数で敵の初期化を行っているが、そこで
Enemy_init(&ENEMY,1);
とすると、移動処理でEnemy1_move関数が実行される。
ここの値を変えることにより、動作確認ができる。
設問aのプログラムを次のように改造する。
- 敵を最大5匹まで表示する。ゲーム開始時は1匹のみで、 その後、5秒毎に1匹増える。
- 敵は画面下まで行ったら、また同じ所から現れる。
- 自弾に敵が当たったら、敵は消える(lifeをDEADにする)。
- 敵を増やす際、タイプ(1〜4)はランダムで選択する。
[実行結果サンプル]
設問bのプログラムを次のように改造する。
- マイキャラを上下にも動けるようにする。
- タイプ2と3の敵キャラから、2秒毎に弾を出す。 弾は上から下にまっすぐ落ちてくる。
- 弾と敵キャラ合わせて最大50個とする。
(ENEMY配列の0から4を敵キャラが、5から49を弾が使う)
設問cのプログラムを次のように改造する。
- タイプ1と4の敵キャラから、2秒毎にマイキャラに向かって弾を出す。
[実行結果サンプル]
シナリオに沿って敵キャラを出す。(問題作りかけ)