ユーザ用ツール

サイト用ツール


ch_emissileset1

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ch_emissileset1 [2018/09/17 10:30] – [しかし、このままでは、実行ボタンを押しても敵機は出現しません。その理由を考えてみます。] adminch_emissileset1 [2018/09/17 10:35] (現在) – [しかし、このままでは、実行ボタンを押しても敵機弾は移動しません。その理由を考えてみます。] admin
行 1: 行 1:
 +====== 敵機弾の発射(垂直下方向) ======
  
 +この講座では、敵機弾が発射され移動するプログラムを作成します。
 +
 +====== 準備 ======
 +
 +敵機の出現のプログラムが必要です。
 +プログラムがない場合は、ダウンロードしてプログラムを上書きしてください。
 +
 +{{ :source_enemy1.zip |敵機の出現プログラム}}
 +
 +====== 敵機弾の発射 ======
 +
 +^  変数名    ^   説明      ^  初期値(未設定の場合)                  ^^
 +^  :::    ^  :::      ^ 自機出現時         ^ 自機弾、敵機、敵機弾出現時  ^
 +| timer1  | タイマー用変数1  | 0             | 50             |
 +| timer2  | タイマー用変数2  | 0             | 0              |
 +
 + timer1の値は、敵機が出現した時に特に指定をしなければ、自動的に50の値が代入されます。それを用いて、出現から50フレーム後に敵機弾を発射するプログラムを記述します。
 +
 +<<enemy.txtの移動プログラムの下に追加>>
 + 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に保存されます。
 +
 +====== しかし、このままでは、実行ボタンを押しても敵機弾は移動しません。その理由を考えてみます。 ======
 +
 +^ 考えられる原因                  ^ 解決方法                  ^
 +| 移動量は記述したが、\\ 実際に移動していない  | 敵機弾に移動するプログラム\\ を記述する  |
 +
 +<<emissile.txtに記述>>
 + x=x+dx;
 + y=y+dy;
 +
 +{{:fig_emissileset1.png?400|}}
 +
 +  * 課題)敵機弾の移動方向を変えてみよう
 +
 +  * Prev. [[ch_enemymove1|敵機の移動(一方向のみ移動)]]
 +  * Top.  [[manual|ConnectSTG マニュアル]]