2008/05/02(金) [n年前の日記]
#1 [iappli] バグ修正中
ごく稀に球が消える、という不具合報告があったので、状態を再現すべくあれこれと。半日アレコレ試して、やっと出た。出た時の、球の速度・角度・座標値をメモっておいて、それに固定。必ず状態が出るようにしてから動作を追跡。
フィールドと外側を区切ってる壁の中に、めり込んでしまう時があるのが原因だった。壁はグーンと高い高さ情報を持ってるので、その高さに球の高さも補正され、画面外に表示されてしまう=消えてしまうように見えていた。どういう対処をするか少し悩んだけど、結局、移動処理の最後に、壁にめりこんでないか判定処理を入れて、めりこんでいたら補正するように。
そもそも、壁にめり込んだ後に補正してないというのが不思議。元のサンプル版からしてそうだったのか、それとも自分が手を入れてる間にエンバグしてしまったのか。球は壁で反射するので、速度が速い時はすぐに抜け出すのだけど。速度が遅い時は数フレーム壁の中に入り続けてしまって、その際に高さが補正されてしまうらしい。速度が遅い状態になる前に、移動処理が終わる・停止することがほとんどなので、そういう不具合が起きることは少なく、ここまで引き摺ってしまった、ということなんだろうけど。
なにかもっとこう、数学的なアタリの持ち方・球の動きを実装したほうが良かったんじゃないか、という感も。いや、どういうアタリを持てばいいのかちょっとわかんないけど。ドローツールでアタリを描くとかそんな感じになるのだろうか。
フィールドと外側を区切ってる壁の中に、めり込んでしまう時があるのが原因だった。壁はグーンと高い高さ情報を持ってるので、その高さに球の高さも補正され、画面外に表示されてしまう=消えてしまうように見えていた。どういう対処をするか少し悩んだけど、結局、移動処理の最後に、壁にめりこんでないか判定処理を入れて、めりこんでいたら補正するように。
そもそも、壁にめり込んだ後に補正してないというのが不思議。元のサンプル版からしてそうだったのか、それとも自分が手を入れてる間にエンバグしてしまったのか。球は壁で反射するので、速度が速い時はすぐに抜け出すのだけど。速度が遅い時は数フレーム壁の中に入り続けてしまって、その際に高さが補正されてしまうらしい。速度が遅い状態になる前に、移動処理が終わる・停止することがほとんどなので、そういう不具合が起きることは少なく、ここまで引き摺ってしまった、ということなんだろうけど。
なにかもっとこう、数学的なアタリの持ち方・球の動きを実装したほうが良かったんじゃないか、という感も。いや、どういうアタリを持てばいいのかちょっとわかんないけど。ドローツールでアタリを描くとかそんな感じになるのだろうか。
[ ツッコむ ]
以上です。