所以,我有一个基本动作的玩家类。在游戏过程中,他解锁了新的能力。我不知道如何在播放器类中存储新动作。确切地说 - 我知道如何,但我的方法太乱了,我想清理代码。另外,我想向敌人添加一些这些能力。换句话说,每个游戏实体(期望墙,可能是:D)应该有一个集合,我可以添加扩展实体功能的方法。我该怎么做?对不起,如果我的问题太过于抽象
答案 0 :(得分: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表达式。