目次

自機弾の発射(垂直上方向)

この講座では、自機弾が発射され移動するプログラムを作成します。

準備

自機の操作のプログラムが必要です。 プログラムがない場合は、ダウンロードしてプログラムを上書きしてください。

自機の操作プログラム

自機弾の発射

«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;