Heeeey,在我正在开发的 RPG 上,我有一个可以添加图层的工作平铺引擎,我有三层:
- 底层
- 顶层
- 实体层
我有碰撞工作和角色动画工作。
但是我将如何制作门,当你走进它们并有钥匙时,它会切换到另一张地图?
我尝试添加另一个名为“EventLayer”的图层,但我不知道如何正确格式化它以使其正常工作。以及诸如事件之类的东西-例如掉落的书,音效...
有人可以帮我吗?
提前致谢!:)
根据您在游戏中的确切需求,此类事件将有很大不同。如果您希望事件只是门和类似的可交互对象,并且拥有自己类型的 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 枚举应该不是问题。
我希望这可以帮助你得到你想要的。根据这么少的信息,很难准确地告诉你应该如何做。祝你好运。