私のゲームには、さまざまなタイプの善人とさまざまなタイプの悪者がいます。それらはすべてお互いに発射体を発射しますが、どちらのアラインメントでも偶発的な付随的な損傷が発生することは望ましくありません。そのため、悪者は他の悪者を打ったりダメージを与えたりしてはならず、善人は他の善人を打ったりダメージを与えたりすべきではありません。
私がこれを解決することを考えている方法は、Unit
インスタンス(これはjavascript、btw)がまたはのalignment
いずれかのプロパティを持つようにすることです。そして、衝突が起きるのは、good
bad
class Attack
boolean didAttackCollideWithTarget(target)
return attack.source.alignment != target.alignment and collisionDetected(attack.source, target)
もちろん、これは疑似コードです。
しかし、私がこの質問をしているのは、Unit
クラスにさらに別のプロパティを追加する以外に、これを設計するはるかにエレガントな方法があるかもしれないという感覚を得ているからです。