この講座では、自機弾が発射され移動するプログラムを作成します。
自機の操作のプログラムが必要です。 プログラムがない場合は、ダウンロードしてプログラムを上書きしてください。
«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;