今回は自機が弾を発射できるようにします
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