私はおそらくこれを考えすぎているので、前もってそれを取り除きます。しかし、何かにぶつかったときにエンティティの速度を変更する単純な衝突アプローチの良い例を見つけることができないようです。最初に頭に浮かぶのは、順番に実行される 3 つのシステムがあることです。
- MovementSystem (速度コンポーネントに基づいてエンティティの位置コンポーネントを更新します)
- InputSystem (マウス/キーボードからの入力に基づいてエンティティの速度コンポーネントを更新します)
- CollisionSystem (別のエンティティと交差しているかどうかに基づいて、エンティティの速度コンポーネントを変更します)
しかし、ここにキャッチ22はありませんか?すでに別のエンティティと衝突している場合、衝突システムが私の速度を殺し続けるため、逃げることはできません。それとも衝突システムに速度の方向を理解させる必要がありますか?