トピック
shoum shoum0403

衝突判定

配列変数を使う練習をしているのですが、 当たり判定がおかしいです。 ボールに当たってないのに、当たり判定がONになってたり、ボールに当たっていてもちゃんと当たり判定がONになります。 ボールに当たった時だけ、当たり判定をONにしたいです ちなみに当たり判定がONの時は音楽が流れます 公開キー 4KKJBEG3 お手数ですが宜しくお願いします
1そうだね
プレイ済み
返信[1]
親投稿
とりあえず当たってないのに当たるのは、スケール0で見えないスプライトに当たっている可能性が高いですね。
1そうだね
プレイ済み
返信[2]
親投稿
shoum shoum0403
もっと詳しく解説願います
0そうだね
プレイ済み
返信[3]
親投稿
AOがRND(3)なので0-2の範囲だから、0の時はスケールが0だから画面に表示されない(けど画面上を移動しているから当たる)という感じですよ。
1そうだね
プレイ済み
返信[4]
親投稿
さっきはスマフォからで長文を打つのが面倒だったのでPCでちょっと補足。 SPSCALEで0にすると表示されないのはさっき書きましたが、当たり判定の範囲は変化していません。もしスケールに合わせて当たり判定の範囲も変えたい場合は、SPCOL 0,TRUEのように第2引数にTRUEを指定する必要があります。 またこのSPCOLはSPSCALEの前に実行しないといけません。SPSCALEの後にSPCOLしてもスケールのサイズは変化しないので注意。 あと当たり判定もFORで全てのスプライトに対してしようとしている感じがありますが、SPHITSPは対象のスプライトに当たったスプライト番号を返す命令なので、 IF SPHITSP(0) != -1 THEN でスプライト0が他の全てのスプライトのどれかに当たったかどうかの判定が出来ますよ。
2そうだね
プレイ済み
返信[5]
親投稿
だにえる haru2016nen
1~3の範囲は1+RND(3)
1そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
SPCOL命令で衝突判定情報を設定していますが、スケール対応を 設定していないためSPSCALEで拡大されたスプライトとの衝突判定が 拡大する前のサイズで行われています。 見た目と衝突判定が合わないのはそのためだと思います。
2そうだね
プレイ済み
返信[7]
親投稿
shoum shoum0403
ありがとうございます。できました!
0そうだね
プレイ済み