====== 敵機弾の発射(垂直下方向) ====== この講座では、敵機弾が発射され移動するプログラムを作成します。 ====== 準備 ====== 敵機の出現のプログラムが必要です。 プログラムがない場合は、ダウンロードしてプログラムを上書きしてください。 {{ :source_enemy1.zip |敵機の出現プログラム}} ====== 敵機弾の発射 ====== ^ 変数名 ^ 説明 ^ 初期値(未設定の場合) ^^ ^ ::: ^ ::: ^ 自機出現時 ^ 自機弾、敵機、敵機弾出現時 ^ | timer1 | タイマー用変数1 | 0 | 50 | | timer2 | タイマー用変数2 | 0 | 0 |  timer1の値は、敵機が出現した時に特に指定をしなければ、自動的に50の値が代入されます。それを用いて、出現から50フレーム後に敵機弾を発射するプログラムを記述します。 <> if(timer1==0){ EMissileSet(x,y,0,4); timer1=50; } ^ 関数 ^ 説明 ^ | EMissileSet(x,y,dx,dy);| 敵機弾を出現させる(最大100体) |  EMissileSetの関数の引数は、x軸,y軸の初期位置とx軸,y軸の増分dx,dyを順番に入力します。ここでは、敵機と同じ位置から出現させ、垂直下方向に移動させるためにx,y,0,4の値が入力されています。入力された値は、敵機弾の変数x,y,dx,dyに保存されます。 ====== しかし、このままでは、実行ボタンを押しても敵機弾は移動しません。その理由を考えてみます。 ====== ^ 考えられる原因 ^ 解決方法 ^ | 移動量は記述したが、\\ 実際に移動していない | 敵機弾に移動するプログラム\\ を記述する | <> x=x+dx; y=y+dy; {{:fig_emissileset1.png?400|}} * 課題)敵機弾の移動方向を変えてみよう * Prev. [[ch_enemymove1|敵機の移動(一方向のみ移動)]] * Top. [[manual|ConnectSTG マニュアル]]