3.弾を発射する

今回は自機が弾を発射できるようにします

dimで弾の情報を保存する配列を作ります。
弾の表示は点を打つ命令psetで行っています。

弾の情報を保持する配列変数tama、tama_x、tama_yを確保します。
tamaは弾を管理する配列です。tama(n) = 0ならば、番号nの弾は発射されていない事になります。
tama_x、tama_yは弾の座標を保持します。

スペースキーが押されたら、発射されていない弾の番号を調べて、
その弾の座標を自機がいる座標にし、弾を発射状態「tama(n) = 1」にします。

1ループごとに現在発射されている弾を上方向に動かします。
弾が画面から消えた場合はその弾を発射されていない状態「tama(n) = 0」とします。

buffer 1,40,40
picload "自機.bmp"
screen 0,400,400

//自機の弾の情報
dim tama,40
dim tama_x,40
dim tama_y,40

*main
stick key,31
if key & 1:x--
if key & 2:y--
if key & 4:x++
if key & 8:y++

//スペースキーで弾を撃つ
if key && 16 {
	repeat 40
	if tama(cnt) = 0 {
		tama(cnt) = 1
		tama_x(cnt) = (x + 20)
		tama_y(cnt) = y
		break
	}
	loop
}

if x < 0 :x = 0
if x > 360:x = 360
if y < 0 :y = 0
if y > 360:y = 360

color 0,0,0
boxf 0,0,400,400
pos x,y
gcopy 1,0,0,40,40

//弾の処理
repeat 40
if tama_y(cnt) < 0 : tama(cnt) = 0
if tama(cnt) = 1 {
	tama_y(cnt)-=10
	color 255,255,255
	pset tama_x(cnt),tama_y(cnt)
}
loop

redraw 1
wait 1
redraw 0
goto *main