私は sphero というロボット ボールのゲームを書いています (フォーラムに問題があり、質問できないようです)。2 人以上のプレイヤーに対してボール ツー ボールの衝突検出を行おうとしています。
まず第一に、彼らはここでサンプルを提供します: https://github.com/orbotix/Sphero-iOS-SDK/tree/master/samples/CollisionDetection
彼らが提供するしきい値はあまりにも敏感で、木製の床では常にトリガーされます. ちょっと忘れて、両方のデバイスからの影響のタイムスタンプを使用して、ほぼ同時に衝突がトリガーされたかどうかを確認する必要があります。
私の問題は、タイムスタンプを差し引くときです。場合によっては、非常に幅広いバリエーションが得られ、そもそも違いがかなり長いと思います。いくつかのタイムスタンプを保存しているので、正しいタイムスタンプを見逃すことはありません。また、デッド タイムを短くしてみました。
最も一般的に 2 つの NSTimeIntervals を減算すると、0.68 と 0.72 の間の差が得られます (0.01 レベルの反応が予想されます)。したがって、差が 0.72 未満であるかどうかを確認すると、3 回連続して 0.72 から 0.73 の間になり、数回は 1.5、2.6、1.1、さらには 3.8 になりました。
信頼できるものではないようです。ドキュメントによると、今回はiPhoneのリファレンスからのものです。両方のデバイスが同期されて時刻が自動的に取得されるため、可能な限り互いに近い状態になります。
誰かがこれを試して、1つのボールを静止させる必要のない信頼できる解決策を思いついたことがありますか?