ユーザ用ツール

サイト用ツール


ch_enemymove1

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ch_enemymove1 [2018/09/07 17:25] – [テーブル] adminch_enemymove1 [2018/09/17 10:32] (現在) – [しかし、このままでは、実行ボタンを押しても敵機は出現しません。その理由を考えてみます。] admin
行 1: 行 1:
 +====== 敵機の移動(一方向のみ移動) ======
 +
 +この講座では、敵機が出現し移動するプログラムを作成します。
 +
 +====== 準備 ======
 +
 +自機弾の発射のプログラムが必要です。
 +プログラムがない場合は、ダウンロードしてプログラムを上書きしてください。
 +
 +{{ :source_pmissileset1.zip |自機弾の発射}}
 +
 +====== 敵機の出現 ======
 +
 +<<player.txtの移動プログラムの下に追加>>
 + if(frame==50){ //50フレーム経過した時
 + EnemySet(320,-32,0,2); //320,-32の位置から増分0,2で移動する敵を出現
 + frame=0; //フレームを0に戻す
 + }
 +
 +変数frameは、現在の経過フレームを知ることができ、実行開始時に0の値から始まり、1フレーム経過すると1加算する仕組みとなっています。1行目は、frameの値を調べて実行開始時から50フレーム経過した時、EnemySetの関数を実行し、敵機を出現させています。
 +
 +^ 関数 ^ 説明 ^
 +| EnemySet(x,y,dx,dy);| 敵機を出現させる(最大20体)  |
 +
 + EnemySetの関数の引数は、x軸,y軸の初期位置とx軸,y軸の増分dx,dyを順番に入力します。ここでは、上端の中心位置から出現させ、垂直下方向に移動させるために320,-32,0,2の値が入力されています。入力された値は、敵機の変数x,y,dx,dyに保存されます。
 +
 +====== しかし、このままでは、実行ボタンを押しても敵機は出現しません。その理由を考えてみます。 ======
 +
 +^ 考えられる原因                  ^ 解決方法                  ^
 +| 移動量は記述したが、\\ 実際に移動していない  | 敵機に移動するプログラム\\ を記述する  |
 +
 +<<enemy.txtに記述>>
 + x=x+dx;
 + y=y+dy;
 +
 +{{:fig_enemy1.png?400|}}
 +
 +  * 課題)下図のように、敵機の出現位置や移動方向を変えてみよう:{{ :kadai_enemy1.zip |解答例}}
 +
 +{{:kadai_enemy1.png?400|}}
 +
 +  * Next. [[ch_emissileset1|敵機弾の発射(垂直下方向)]]
 +  * Prev. [[ch_pmissileset1|自機弾の発射]]
 +  * Top.  [[manual|ConnectSTG マニュアル]]
 +