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