お久しぶりです。
この前は本当にお世話になりました!!
管理人さんの対応に大変感謝しています!
----------
最近、ゲーム制作を再開したのですが、
Dxライブラリのバグなのかも...
と思うものが出てきたので質問します。
MV1CollCheck_Sphereという関数です。
モデルと球の衝突判定をこの関数でやっていたのですか、
58~60FPSくらいで動いていたのが、
あるとき突然1フレーム1~2秒くらいのスピードになり
衝突判定もされなくなる、ということが発生しました。
自分のプログラムのせいかなと思って試したりしてみましたが、
心当たりがある場所はなく、どこを直しても直らず...
(見落としの可能性は一応あるかもしれないですが...)
いろいろ試したのでその詳細を記載します▼
細かい数字フレームなど
については気になさらなくて大丈夫です。
試行ごとの数字の増減が重要かもしれません...
バグの詳細です-------------------------------------▼
プログラムの内容-------------
モデルは5452ポリゴン、全て三角ポリゴン
設定は
MV1SetUpCollInfo(モデルハンドル,-1,8,8,8)
衝突判定の関数
MV1CollCheck_Sphere3つ
(MV1CollCheck_Line1つ→一応、どの試行でも接触しています)
試行---------------------------------------------
試行1:ただひたすらモデルに球(2つ)をぶつけ続けてみる
結果→開始11773フレームで発生(衝突していなかった時間もある)
---------------------------------------------
試行2:衝突の時間を減らしてみる
結果→開始13248フレームで発生(試行1より長くなった)
---------------------------------------------
試行3:球3つをモデルにぶつけ続けてみる
結果→開始8954フレームで発生(衝突していなかった時間もある)
(試行1より短くなった)
---------------------------------------------
試行4:MV1CollCheck_Sphereの関数を一つ減らし、球2つをぶつけ続けてみる
→関数の数は2つ
結果→開始13061フレームで発生
(試行1より長くなった(不明))
---------------------------------------------
試行5:Mv1CollCheck_Sphereの関数を12個くらいに増やし、全部衝突させ続けてみる
結果→開始2000フレームくらいで発生(すごく短くなった)
---------------------------------------------
試行6:さらに関数の数を増やして28個くらいにして、全部衝突させ続けてみる
結果→開始1400フレームくらいで発生(もっと短くなった)
---------------------------------------------
試行7:さらに増やして、45個くらいにして全部衝突させ続けてみる
結果→開始800フレームくらいで発生(さらに短くなった)
---------------------------------------------
---------------------------------------------------------▲
このような結果になりました。
衝突後は交点を求めたりしているのですが、消しても変わらず発生しました。
また、線の衝突も消しても発生しました。
MV1CollCheck_Sphere関数を全部消すと、発生しませんでした。
また、全く衝突しない場合は関数が45個くらいあっても発生しませんでした。
バグは以下の通りです------------▼
それまでは軽いのですが、
→衝突していたら突然、プログラムが重くなって、判定がなくなる
(今まで落ちなかったのに、急にすり抜けて落ちて行く)
また、試行の際、
MV1CollCheck_Sphereが増えるほど重くなる傾向がありました。
→試行1の時は1フレーム1秒ほどの重さ
→試行7では1フレーム15秒ほどの重さ
ちなみに、バグが発生するまでは、どの試行も55~60FPSくらいです。
-------------------------------------------▲
一度、管理人さんの方でご確認いただけないでしょうか...?
もしかしたらこちらのミスかもしれないですが...
お手数をおかけしますが、よろしくお願い致します。