今、STGを作っているのですが緑色の弾の「●」がうまく表示されません(1個ずつしか表示されない状態)。
もう一方の「▼」の弾の方はうまくいってるのですが・・・・
何がいけないんでしょうか?
バリバリの初心者なんで分かりやすく説明してもらえると有難いです。
あと当たり判定などがおかしいことになってますが気にしないでください。
x1=0:y1=0
x2=640:y2=480
blsize=20
blspd=7
blx=240:bly=400
bpx=8:bpy=8
bk=0
tamasize_x=17
tamasize_y=16
jkx=40
jky=30
jiki=10
screen 0,x2,y2
//弾の情報
dim tama,100
dim tama_x,100
dim tama_y,100
dim tama2,100
dim tama2_x,100
dim tama2_y,100
*main
//自機の情報
redraw 1
gradf 0,0,x2,y2,1,0,128
color 0,255,0
pos blx,bly:color 255,255,255:font msgothic,blsize
mes"■"
//自機の操作
stick key,31
if key&2:bly-10
if key&1:blx-10
if key&4:blx+10
if key&8:bly+10
//自機の操作範囲
if blx<=x1 : blx=x1
if blx>=x2-43 : blx=x2-43
if bly>=y2-38 : bly=y2-38
if bly<=0 : bly=0
//弾出現ルーチン
time++
if(time \ 2)=0{
repeat 100
if tama(cnt)=0{
tama(cnt)=1
tama_x(cnt)=rnd(x2)
tama_y(cnt)=-10
tama_hp(cnt)=10
break
}
loop
}
if(time \ 50)=0{
repeat 100
if teki2(cnt)=0{
tama2(cnt)=1
tama2_x(cnt)=rnd(x2)
tama2_y(cnt)=-10
tama2_hp(cnt)=10
break
}
loop
}
//弾の処理
repeat 100
if tama_y(cnt)>y2:tama(cnt)=0
if tama(cnt)=1{
tama_x(cnt)+=rnd(3)
tama_y(cnt)+=10
if (abs(blx - tama_x(cnt)) < 30) & (abs(bly - tama_y(cnt)) < 16){
jiki=jiki-1
if jiki=0:goto*gameover
tama(cnt)=0
}
pos tama_x(cnt),tama_y(cnt)
mes "▼"
}
loop
repeat 100
if tama2_y(cnt)>y2:tama2(cnt)=0
if tama2(cnt)>=1{
tama2_x(cnt)+=-2
tama2_y(cnt)+=20
if (abs(blx -tama2_x(cnt)) < 30) and (abs(bly - tama2_y(cnt)) < 16){
jiki=jiki-1
if jiki=0:goto*gameover
tama2(cnt)=0
}
pos tama2_x(cnt),tama2_y(cnt)
color 0,255,0
mes"●"
}
loop
await 16
redraw 0
goto *main
*gameover
tama_y=0
tama_y=0
pos 280,140
color 255,255,0
mes "GameOver"
objsize 180,32
pos 235,240:button"終了",*owari
stop
*owari
end