0

所以,我有一个具有基本动作的玩家类。在游戏过程中,他解锁了新的能力。我不知道如何在播放器类中存储新动作。准确地说-我知道怎么做,但是我的方法太乱了,我想清理代码。另外,我想给敌人增加一些这样的能力。换句话说,每个游戏实体(除了墙,也许 :D)都应该有一个集合,我可以向其中添加扩展实体功能的方法。我怎么做这个?抱歉,如果我的问题太抽象

4

1 回答 1

2

创建一个动作字典:

public Dictionary<string,Action> NameActionDic = new Dictionary<string,Action>();

然后你可以像这样填充它:

player.NameActionDic["jump"] = ()=>{ player.velocity.Y -= 5; };

并像这样使用:

if (KeyboardButtonPressed(Keys.ArrowUp))  // this is just an example
    player.NameActionDic["jump"]();

只需将填充代码放在郊区某处(单独void的方法,可能是玩家的构造函数),否则它会干扰您的编辑和继续能力,因为它是一个 lambda 表达式。

于 2013-01-27T15:31:33.503 回答