Heeeey,在我正在开发的RPG上我有一个可以添加图层的工作瓦片引擎,我有三层:
我有碰撞工作和角色动画工作。
但是我怎么去制作门,当你走进它们并有一把钥匙时,它会切换到另一张地图?
我尝试添加另一个名为“EventLayer”的图层,但我不知道如何正确地将其格式化以便工作..还有像事件之类的东西 - 例如掉书,声音效果..
有人可以帮帮我吗?
提前致谢! :)
答案 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枚举应该不是问题。
我希望这可以帮助你得到你想要的东西。根据这些小信息,你有点难以告诉你应该如何做到这一点。祝你好运。