このようなイベントは、ゲームで正確に何が必要かによって大きく異なります。イベントをドアや類似のインタラクティブなオブジェクトだけにして、NPC やモンスターなどを独自のタイプにしたい場合は、イベントを作成するのはそれほど難しくありません。
位置、グラフィック、トリガーの種類など、すべてのイベントに必要なすべてのプロパティを含める必要があります。あなたの場合、特定のアイテムが所持されている場合にのみ特定のイベントが機能するようにします。要件リストを追加し、対応するイベントを実行する前に、そのリストのすべてが満たされていることを確認します。
イベント オブジェクトをプログラミングする場合、このクラスのこのインスタンスからほとんどの (すべてではないにしても) イベントを作成できるように、イベント オブジェクトをユニバーサルにしたい場合があります。簡単なイベント クラスのモックアップの例:
class Event {
public Texture2D Graphic { get; set; }
public Vector2 TileLocation { get; set; }
public List<Condition> Conditions { get; set; }
public TriggerType Trigger { get; set; }
public List<Command> Commands { get; set; }
public int CommandIndex { get; set; }
public bool Running { get; set; }
public bool Erased { get; set; }
public Event() { Erased = false; }
public void Update(GameTime gameTime){
if(Erased) return;
if(Running){
// continue command execution
}
else // check for triggering
switch(Trigger){ }
}
public void Draw()[
if(Erased) return;
// drawing code
}
}
コマンド クラスと TriggerType 列挙は問題になりません。
これがあなたが望むものを手に入れるのに役立つことを願っています. このようなわずかな情報に基づいて、どのようにすればよいかを正確に伝えるのは少し難しいです。幸運を。