こんばんは。
オプションショットの挙動がおかしいので質問させていただきます。
自機弾の画像を、
①通常弾・・・img_cshot[0]としてload
②オプションからのホーミング弾・・・img_cshot[1]としてload
③オプションからの低速移動時のホーミング弾・・・img_cshot[2]としてload
の3種類を用意して新たに②と③をオプションショットとして実装してみたのですが、
ボス出現と同時に③の弾が表示されなくなってしまいます。
img_cshot[2]だけでなく、img_cshot[3]img_cshot[4]…以降のハンドルで読み込んだ画像も
ボス出現と同時に表示されなくなってしまいます。
オプションショットは第49章のような方法の実装ではなく、
第17章に画像と発射座標をオプションに変えたショットを追加しただけです。
弾が消えてもダメージは通るので一応計算はされているようです。
また自機ショットの構造体以外にオプションショットの構造体を別個用意して、
別々に計算させたところ正常に描画され、ボス出現時に消えるということはありませんでした。
ただこれですと当たり判定にオプションショット用の関数を用意しないといけないため、
処理的に良くありません。
ボス出現時にオプションショットが描かれない状態
Re:ボス出現時にオプションショットが描かれない状態
> 弾が表示されなくなってしまいます
いろいろ可能性があるので、ソース一式を見ないとよく判らないのですが。
とりあえず、画面の隅の方にでも常に位置固定で img_cshot[2]や img_cshot[3]を表示してみて
ボスが登場したときにその画像がどうなるか見てください。
もし、ボス登場と同時にその画像が消えたら、何らかの原因でimg_cshot[2]や img_cshot[3]の値が
変化しているか、イメージが破棄されてしまっている可能性があります。
変化しなかった場合は、ボスが登場して表示されなくなった段階で img_cshot[2]や img_cshot[3]の弾を
描画しようとしているところで処理をデバッガで止めて、描画に絡みんでいる座標などの変数に異常がないかを
確認してください。
まずはそんなところでしょうか。
Re:ボス出現時にオプションショットが描かれない状態
まずイメージの破棄はされていない様でした。
そこでimg_cshot[2]で描画しているショットの座標を表示させていたところ、
ボス出現とともに最後に表示された座標でピタっと止まってしまいました。
またショットボタンを押し直すと発射点と思われる座標に更新されます。
オプションショットだけでなく通常ショットもimg_cshot[2]で描画すると同様の状態になりました。
そこでimg_cshot[2]で描画しているショットの座標を表示させていたところ、
ボス出現とともに最後に表示された座標でピタっと止まってしまいました。
またショットボタンを押し直すと発射点と思われる座標に更新されます。
オプションショットだけでなく通常ショットもimg_cshot[2]で描画すると同様の状態になりました。
Re:ボス出現時にオプションショットが描かれない状態
> ボス出現とともに最後に表示された座標でピタっと止まってしまいました
そのとき、弾の出現フラグ(.flag)はどうなっていますか?
Re:ボス出現時にオプションショットが描かれない状態
ボスが出現した瞬間に誰か(何か)によって、オフにされてしまったんでしょうね。
それを突き止めれば解決しそうな予感がします。
それを突き止めれば解決しそうな予感がします。
Re:ボス出現時にオプションショットが描かれない状態
問題解決ではありませんが、試しに
グラフィックはocshotという構造体で、フラグや座標計算その他はcshot構造体のまま
という感じで構造体を新たに用意して担当分けすることで、
ボス出現時にimg_cshot[2]の自機ショットが消えるという症状はなくなりました。
各所のcshot[k].kndをocshot[k].kndと変えただけで各パラメータは正常動作するようになりました。
グラフィックを制御する構造体を変えただけなので描画関数や当たり判定を新たに用意する必要がないのですが、
cshotが不安なので引き続き見直してみたいと思います。
グラフィックはocshotという構造体で、フラグや座標計算その他はcshot構造体のまま
という感じで構造体を新たに用意して担当分けすることで、
ボス出現時にimg_cshot[2]の自機ショットが消えるという症状はなくなりました。
各所のcshot[k].kndをocshot[k].kndと変えただけで各パラメータは正常動作するようになりました。
グラフィックを制御する構造体を変えただけなので描画関数や当たり判定を新たに用意する必要がないのですが、
cshotが不安なので引き続き見直してみたいと思います。
Re:ボス出現時にオプションショットが描かれない状態
現象だけを見ると、なんかメモリを壊しているような感じもしますね。
> 引き続き見直してみたいと思います
そうですね。ここで直しておかないと、後でまた再発するかもしれませんから。
頑張って下さい。
Re:ボス出現時にオプションショットが描かれない状態
PSPという環境ですので、もしかしたらハード側やライブラリに何らかの問題があるのかもしれません。
ですが、恐らくその可能性は低いと思うのでまずは自分のコードを疑って掛かることにします。
ありがとうございました!
ですが、恐らくその可能性は低いと思うのでまずは自分のコードを疑って掛かることにします。
ありがとうございました!
Re:ボス出現時にオプションショットが描かれない状態
img_cshot[3];ってそのままだと宣言されているので
img_cshot[3]img_cshot[4]…はそのままだとメモリが破壊されると思います。
img_cshot[3]img_cshot[4]…はそのままだとメモリが破壊されると思います。