壊れないブロックを作ったのですが角に当たるとめり込んでしまい
ボールが戻ってこなくなるのですが何か良い方法があれば教えていただけないでしょうか
//ボールのブロックに対する当たり判定// repeat BROYKAZU RCNT = cnt repeat BROXKAZU xx = 0 if map.cnt.RCNT = 0 : continue ;0ならブロックが存在しないのでスキップする if((by+bsize) >= broy.cnt.RCNT) & (by <= (broy.cnt.RCNT + broysize)) & ((bx + bsize) >= brox.cnt.RCNT) & (bx <= (brox.cnt.RCNT + broxsize)) { ;ボールがブロックに当たったら mmload "ブロックに当たった音.aif",23 mmplay 23 if((bbx + bsize) >= brox.cnt.RCNT) & (bbx <= (brox.cnt.RCNT + broxsize)) { ;ブロックの上か下にボールが当たった場合の処理 bmy = -bmy ;ボールの縦移動の反転 reflect = 1 if map.cnt.RCNT ! 4 { map.cnt.RCNT -= 1 ;当たったブロックを消す gosub *kasan ;得点の加算 brokazu-- ;ブロックの数を一つ減らす } xx = 1 ;スキップする } } if map.cnt.RCNT = 0 : continue ;0ならブロックが存在しないのでスキップする if((by+bsize) >= broy.cnt.RCNT) & (by <= (broy.cnt.RCNT+broysize)) & ((bx+bsize) >= brox.cnt.RCNT) & (bx <= (brox.cnt.RCNT+broxsize)) { ;ボールがブロックに当たったら if((bby + bsize) >= broy.cnt.RCNT) & (bby <= (broy.cnt.RCNT + broysize)){ ;ブロックの左か右にボールが当たった場合の処理 bmx = -bmx ;ボールの横移動の反転 reflect = 1 if map.cnt.RCNT ! 4 { map.cnt.RCNT -= 1 ;当たったブロックを消す gosub *kasan ;得点の加算 brokazu-- ;ブロックの数を1つ減らす } xx = 1 ;スキップする } } if xx = 1 : break loop if xx = 1 : break loop return
詳しくは下記のサイトからも見る事ができます
http://cid-859a75f8c21f69d6.skydrive.live.com/self.aspx/HSP3/geme.zip