RPG门/活动

时间:2013-10-13 09:09:26

标签: c# 2d

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

  • 底层
  • 顶层
  • 实体层

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

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

我尝试添加另一个名为“EventLayer”的图层,但我不知道如何正确地将其格式化以便工作..还有像事件之类的东西 - 例如掉书,声音效果..

有人可以帮帮我吗?

提前致谢! :)

1 个答案:

答案 0 :(得分: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枚举应该不是问题。

我希望这可以帮助你得到你想要的东西。根据这些小信息,你有点难以告诉你应该如何做到这一点。祝你好运。