今初めてゲームをつくろうとシューティングゲームを作っているんですが、当たり判定の処理
がうまくいきません()。理由と解決法を教えて下さいm(_ _)mスクリプトは以下です。(不要部分の多い長いスクリプトの投稿は
ご遠慮くださいと書いてあったんですがどこが不要かわかりませんでしたので長くなってしまったらすいません)
screen 0,800,500//画面の大きさ
randomize//ランダム化
//自機の場所
jiki@yoko = 300
jiki@tate = 450
// 変数
//たま用
shot@f = 0
shot@yoko = 0
shot@tate = 0
//適用
tekimax = 50
dim teki@f , tekimax
dim teki@yoko , tekimax
dim teki@tate , tekimax
略
//敵の出現
if jikan >= 5{//f
repeat tekimax//98
if teki@f(cnt) = 0 {//g
teki@yoko(cnt) = rnd(800)
teki@tate(cnt) = - 5
teki@f(cnt) = 1
jikan = 0
break
}
loop
}
//弾の発射
if shot@start = 1{
shot@f = 1
shot@yoko = jiki@yoko - 8
shot@tate = jiki@tate - 8
}
//画面外に行かせない
if jiki@yoko > 800 :jiki@yoko = 800
if jiki@yoko < 0:jiki@yoko = 0
if jiki@tate > 500 :jiki@tate = 500
if jiki@tate < 0:jiki@tate = 0
//弾の描画
if shot@f = 1{
pos shot@yoko , shot@tate
color 0,0,0
mes "弾"
}
//玉を上に
if shot@f = 1{
shot@tate - 25
if shot@tate < 0:shot@f = 0
}
//弾と敵当たり判定
i = 0
if shot@f = 1{
repeat tekimax
if teki@f(cnt) = 1{
tmp = teki@yoko(cnt) - shot@yoko
tmp2 = teki@tate(cnt) - shot@tate
tmp * tmp
tmp2 * tmp2
tmp3 = tmp + tmp2
if tmp3 < 64 {
teki@f(cnt) = 0
shot@f = 0
}
}
loop
}