ユーザ用ツール

サイト用ツール


ch_pmissileset1

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ch_pmissileset1 [2018/09/09 13:08] adminch_pmissileset1 [2018/09/17 10:31] (現在) admin
行 1: 行 1:
 +====== 自機弾の発射(垂直上方向) ======
 +
 +この講座では、自機弾が発射され移動するプログラムを作成します。
 +
 +====== 準備 ======
 +
 +自機の操作のプログラムが必要です。
 +プログラムがない場合は、ダウンロードしてプログラムを上書きしてください。
 +
 +{{ :source_move.zip |自機の操作プログラム}}
 +
 +====== 自機弾の発射 ======
 +
 +<<player.txtの移動プログラムの下に追加>>
 + if(KZ() && timer1==0){ //Zキーを押して且つ待ち時間が0の時
 + PMissileSet(x,y,0,-10); //x,yの位置から増分0,-10で移動する自機弾を発射
 + timer1=10; //待ち時間10フレーム
 + }
 +
 + 変数timer1は、タイマー用変数です。1フレーム経過すると自動的に1減少し、0になると自動的に停止する変数です。timer2も同様の使用が可能です。出現時に、プログラムからタイマーの初期値を指定していない場合、次の値が自動的に初期値として代入されます。
 +
 +^  変数名    ^   説明      ^  初期値(未設定の場合)                  ^^
 +^  :::    ^  :::      ^ 自機出現時         ^ 自機弾、敵機、敵機弾出現時  ^
 +| timer1  | タイマー用変数1  | 0             | 50             |
 +| timer2  | タイマー用変数2  | 0             | 0              |
 +
 + 自機出現時の初期値は、上の表から0が与えられます。これは、ゲームスタート後に直ぐに自機弾が発射できるという意味です。
 +
 + KZ()(Zキーを押したとき)且つ待ち時間が0の時に、PMissieSetを使用し自機弾を発射させています。
 +
 +^ 関数 ^ 説明 ^
 +| PMissileSet(x,y,dx,dy);| 自機弾を出現させる(最大100体)  |
 +
 + PMissileSetの関数の引数は、x軸,y軸の初期位置とx軸,y軸の増分dx,dyを順番に入力します。ここでは、自機と同じ位置から出現させ、垂直上方向に移動させるためにx,y,0,-10の値が入力されています。入力された値は、自機弾の変数x,y,dx,dyに保存されます。
 +
 +====== しかし、このままでは、実行ボタンを押しても敵機は出現しません。その理由を考えてみます。 ======
 +
 +^ 考えられる原因                  ^ 解決方法                  ^
 +| 移動量は記述したが、\\ 実際に移動していない  | 自機弾に移動するプログラム\\ を記述する  |
 +
 +<<pmissile.txtに記述>>
 + x=x+dx;
 + y=y+dy;
 +
 +{{:fig_pmissileset.png?400|}}
 +
 +  * 課題)自機弾の移動方向を変えてみよう
 +
 +  * Next. [[ch_enemymove1|敵機の移動(一方向のみ移動)]]
 +  * Prev. [[ch_playermove|自機の操作(上下左右に動作)]]
 +  * Top.  [[manual|ConnectSTG マニュアル]]
 +