1

Heeeey、私が取り組んでいる私の RPG では、レイヤーを追加できる稼働中のタイル エンジンがあります。3 つのレイヤーがあります。

  • 最下層
  • 上層
  • ソリッドレイヤー

私は衝突作業を行っており、キャラクターアニメーションも作業しています。

しかし、ドアに入って鍵を持っていると、別のマップに切り替わるドアを作るにはどうすればよいでしょうか?

「EventLayer」という別のレイヤーを追加しようとしましたが、適切にフォーマットして機能させる方法がわかりません..そして、イベントのようなもの-たとえば、落ちる本、効果音...

誰かがこれで私を助けてくれますか?

前もって感謝します!:)

4

1 に答える 1

2

このようなイベントは、ゲームで正確に何が必要かによって大きく異なります。イベントをドアや類似のインタラクティブなオブジェクトだけにして、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 列挙は問題になりません。

これがあなたが望むものを手に入れるのに役立つことを願っています. このようなわずかな情報に基づいて、どのようにすればよいかを正確に伝えるのは少し難しいです。幸運を。

于 2013-10-13T11:52:03.887 に答える