1

Heeeey,在我正在开发的 RPG 上,我有一个可以添加图层的工作平铺引擎,我有三层:

  • 底层
  • 顶层
  • 实体层

我有碰撞工作和角色动画工作。

但是我将如何制作门,当你走进它们并有钥匙时,它会切换到另一张地图?

我尝试添加另一个名为“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 回答