阅读gamasutra上的一篇文章让我思考MVC游戏中控制器应该如何设计:
选项1: 控制器应该对模型进行操作,
例如:每当按下一个键,控制器就调用模型:
选项2:模型向控制器查询该做什么
例如:每次更新时,模型都会调用GetDesiredXSpeed()函数:
这段文字的意思是:在控制器的两种设计中,哪一种提供了更多的好处,以便能够更改控制器以支持替代输入方法,例如操纵杆或鼠标、网络玩家甚至人工智能?我应该选择哪一个?如果您在游戏设计方面有个人经验,请给我您的建议。
选项1: 控制器应该对模型进行操作,
例如:每当按下一个键,控制器就调用模型:
On KeyPress Left
SuperMario.StartWalking(Left)
On KeyRelease -Left or Right-
SuperMario.StopWalking()
选项2:模型向控制器查询该做什么
例如:每次更新时,模型都会调用GetDesiredXSpeed()函数:
On KeyPress Left
speedX = -SuperMario.MaxSpeed();
On KeyRelease -Left or Right-
speedX = 0;
int GetDesiredXSpeed()
return speedX;
这段文字的意思是:在控制器的两种设计中,哪一种提供了更多的好处,以便能够更改控制器以支持替代输入方法,例如操纵杆或鼠标、网络玩家甚至人工智能?我应该选择哪一个?如果您在游戏设计方面有个人经验,请给我您的建议。