私は2Dゲームに取り組んでいます。ゲームマップをgameMapというjsオブジェクト{}に保存しています。私の問題は、マトリックス上のアイテムの読み取りに時間がかかりすぎることです。衝突検出の場合、通常、マップマトリックスの10または20項目をチェックする必要があります。これには約1ミリ秒かかり、画面に10文字ある衝突検出がアプリのボトルネックになり、各フレームの16ミリ秒のうち10ミリ秒かかるはずです。また、マップが大きくなりすぎると、スケールアップします。
マップに1000x1000のアイテムがあるとします。今、私がチェックしたい位置(-100,200)
にあるものをチェックしたい場合gameMap['-100'][200]
。私の考えは、100x100のアイテムをグループ化する象限にマップを分割することです。だからチェックするため(-100,200)
に私はテストしgameMap[quadrantName][-100][200]
ます。これは、gameMapがほぼ同じサイズである一方で、はるかに少ないアイテムで動作し、おそらく読み取り速度がはるかに小さい割合でスケールアップすることを意味します。これが読書を速くするかどうか誰かが知っていますか?読み取り速度を向上させるために他に何ができますか?