タイトルは少しわかりにくいですが、質問を短いフレーズで説明する方法は考えられません。だからここにあります:
物理/タイルベースなど、ゲームエンジンを作成しているときはいつでも、物事をどのように管理すればよいかわからないところにいつも行きます。世界のエンティティは自分で処理する必要がありますか、それとも管理するグローバルシステムが必要ですか?
簡単な例を次に示します。各オブジェクトが彼の周りの世界を見て(衝突をチェック)、それに基づいて移動する必要があります。
[注、これはオブジェクトがタイルごとに移動するタイルベースのゲームなので、物理を使用してタイル間を移動していません]
public class Actor : GameObject
{
private void MoveTo(Vector2 location)
{
if (world.getTile(location) != solid && world.objAtTile(location) == null)
{
Tweener.addTween(this, location);
}
}
}
または、各オブジェクトの動きは、世界がすべてをチェックする世界で操作する必要がありますか?
public class Actor : GameObject
{
private void MoveTo(Vector2 location)
{
world.moveTo(location);
}
}
public class World
{
public void moveObject(GameObject obj, Vector2 location)
{
//called from object
if (getTile(location) != solid && objAtTile(location) == null)
{
Tweener.addTween(obj, location);
}
}
}
この例ではそれほど重要ではありませんが、後で問題が発生するのがわかります。前もって感謝します。
Actor
知りましょworld
う。