トピック
かいと last2k

質問です

公開キー[K3XE3XD] 上のプログラムでダイアログで2を選んだときの自機のレーザーが、たまに画像のように敵に当たっていないにも関わらず敵に当たったときの動作をします。どのようにしたら直りますか?
0そうだね
プレイ済み
返信[1]
親投稿
Hanzo rzsense
今のところ、ご指摘の現象に遭遇していないので、確かなことは言えませんが、ソースを拝見した上で、気になる点が3つあります。 1.SPDEFでスプライトの中心をホーム座標として指定している部分が、いずれも1ドットずれているような気がします。例えば、24×32のスプライトなら、中心は12,16ですが、11,15となっています。 2.レーザーのスプライトの衝突判定領域を、幅8×高さ1にしているようですが、それだと、SPCOLVECによる衝突判定領域の幅が、レーザーの向きによって変わってしまうので、幅1×高さ1にしては? 3.レーザーのスプライト高さを1にして、敵との距離に応じて高さを拡大していますが、それだと拡大率が大きくなりすぎるので、レーザーのスプライトは高さ、ホームY座標ともに32にして、代わりにSPSCALEの縦拡大率を1/32にしては?
0そうだね
プレイ済み
返信[2]
親投稿
Hanzo rzsense
先ほどの2.について補足すると、スプライトが回転しても、スプライトの衝突判定領域がホーム座標を中心に回転するということはありません。これは、スプライトの衝突判定領域がホーム座標からずれていると、回転角度によっては、意図した衝突判定領域と、実際のそれが大きくかけ離れることがあることを意味します。特に、SPCOLVECで衝突判定領域を引き延ばす場合は、衝突判定領域の中心=ホーム座標とし、衝突判定領域のサイズもなるべく小さくすべきです。
0そうだね
プレイ済み
返信[3]
親投稿
かいと last2k
ご指摘ありがとうございます。指摘されたところを直してみましたが、まだ不具合が発生するときがあります。他に気になった所等はありましたか?
0そうだね
プレイ済み
返信[4]
親投稿
かいと last2k
補足:一度不具合が起きると、Aボタンを押し直さない限り元に戻りませんでした。
0そうだね
プレイ済み
返信[5]
親投稿
Hanzo rzsense
私のところでは、今のところ症状を再現出来ていないんですよね・・・。割と頻繁に症状再現しますか?あるいは、確定的な再現手順とかはありますかね? 症状が再現するとすれば、その原因は、スプライトのホーム座標、衝突判定領域、拡大率、のいずれかが、想定とずれているのは間違いないと思うんですが・・・
0そうだね
プレイ済み
返信[6]
親投稿
Hanzo rzsense
症状が再現しました。Xボタンを押しながらAボタンを押すと、前後固定レーザーを発射し、前後に敵がいれば、それに応じてレーザーの長さが変わりますが、どうやら、その状態でXボタンをはなしても、Aボタンを押している限り、レーザー長がXボタンをはなす直前の状態を保持してしまうようです。で、Aボタンを押しなおすと元に戻る、と、こんな感じみたいですね。
0そうだね
プレイ済み
返信[7]
親投稿
かいと last2k
情報提供ありがとうございます。おかげで無事不具合を修正することが出来ました。
0そうだね
プレイ済み