2次元平面上の位置にポイントがあるとしましょう。このポイントはランダムに位置を変更しようとしていますが、それはポイントではないので、独自の速度があり、幅と高さが制限された平面上を移動していると仮定しましょう。したがって、しばらく移動すると、この点は平面境界に到達します。しかし、飛行機から離れることはできません。
これで、フレームごとにポイントの位置をチェックして、境界に達したかどうかを確認できます。
if(point.x>bound.xMax)point.x=bound.xMax
ポイントを自分自身を平面の 2 番目の側にテレポートさせたい場合は、次のように簡単にできます。
point.x = point.x%bound.xMax;
しかし、ポイント位置を整数で保存する必要があります。
私のcorei7 1.6での1000万の値の場合、両方のソリューションのタイミングは似ています。41ms 対 47 秒なので、その場合はモジュロ関数を使用しても意味がありません。値を確認するだけの方が高速です。
しかし、それを速くするためのトリックはありますか?配列アプローチを反復するための複数のスレッドは解決策ではありません。
たぶん、バインドされた値を奇妙な値にスケーリングし、たとえば、位置値のバイナリ解釈の一部を破棄できます。
そして、それを行うためのトリックがあれば、誰かが私の前にそれをやったと思います:)私を助けることができる解決策を知っていますか?