世界座標でカメラを動かし、キャラクターを世界中で動かすことは、この問題に取り組む最も簡単な方法です。世界座標で作業することは、他のすべてのシステムで機能する必要がある場合、余分な計算を行う必要がないことを意味します。相対座標系およびそれらが世界座標のどこにあるかも理解します。
2Dで作業しているため、仮想パーティションのグリッドシステムを作成する最も簡単な方法は、空間分割を行うことです。これにより、スプライトやその他のリソースをタイルごとに関連付けることで、各タイルを個別に管理できるため、本質的には、プロセスは次のようになります。
タイルの境界座標と、特定のタイルに必要なリソース(スプライト、敵など)を保持できるタイルクラスを作成します。
世界のサイズを決定し、関連するすべてのリソースで世界のビットを表すタイルの2D配列を作成します(1次元を使用して2Dとしてアクセスできます)。
プレイヤーがいるタイルとその隣のタイルからのみリソースを引き出します。
グリッドを使用すると、グリッドの開始点に対するプレーヤーの位置に基づいて、プレーヤーがどのタイルにいるかを簡単に見つけることができます。
カメラについて述べた問題を回避するには、プレーヤーとカメラを2つの独立したシステムにして、カメラがエッジタイルの中心よりも先に移動しないようにする必要があります。これにより、プレーヤーがそのタイルに移動しても、プレイヤーはタイル全体を移動できます。世界座標に拘束されている(つまり、画面の中央に配置されていない)タイル全体。ただし、カメラはロックされています。