HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0201
ブロックボールとブロックの当たり判定について1未解決


ブロック

リンク

2009/2/1(Sun) 17:38:02|NO.23167

ボールとブロックの当たり判定なんですけれども
壊れないブロックを作ったのですが角に当たるとめり込んでしまい
ボールが戻ってこなくなるのですが何か良い方法があれば教えていただけないでしょうか


//ボールのブロックに対する当たり判定// 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



この記事に返信する


レヴィン

リンク

2009/2/1(Sun) 20:58:58|NO.23169

前回質問した時にSYAMさんに言われたことが全くわかってないみたいですね。
「 丸 投 げ は よ く な い で す。」

それと、マルチポストはやめようぜ?
http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200901/09010011.txt
ここを見てる人って意外と他も見てたりするからすぐにわかります。

zipの内容は見ました。
>>壊れないブロックを作ったのですが角に当たるとめり込んでしまい
だったらまず、壊れないブロックがあるステージから始まるようにして下さい。

スクリプトを書いたのはあなたです。
せめてどの変数でステージ番号を管理しているかは書くべきです。

俺は「角に当たるとめり込む」って現象が起きなかったので推測だが、
ボールがブロックに当たった時にギリギリブロックに接触している位置にボールを
移動しないために起こるのでは?

てか、前回も同じ質問をしましたよね?
http://hsp.tv/play/pforum.php?mode=all&num=21556
ここで既に回答は出ていると思います。

それと、SEは1回ロードするだけでいいです。
ボールがブロックと接触するたびに読み込む必要はありません。



ONION software Copyright 1997-2018(c) All rights reserved.