我经常看到模型视图控制器模式的非常不同的实现,并且完全理解你应该适应和使用最适合你需求的东西,但我想知道保持简单游戏的优点/缺点/最佳实践是什么以太逻辑控制器或模型?
从本质上说,这是我应该这样做的正确方法吗?
对于这个简单的例子,玩家受到了伤害,我列出了三种可能的处理方法:
1
位指示:
_model.playerDamage - 15;
if (_model.playerDamage <= 0){
_model.playerLives --;
_model.restartLevel();
}
2
控制器:
_model.playerDamage = 15;
模型:
function set playerDamage(value:int){
playerDamage = value;
updatePlayer();
}
function updatePlayer():void{
if (playerDamage<=0){
palyerLives --;
restartLevel();
}
}
第3
控制器:
_model.playerDamage = 15;
_model.addEventListener('playerChange', checkPlayerStatus);
function checkPlayerStatus(e:Event):void{
if (_model.playerDamage<=0){
_model.playerLives --;
_model.restartLevel();
}
}
模型:
function set playerDamage(value:int){
playerDamage = value;
dispatchEvent(new Event('playerChange'));
}
答案 0 :(得分:6)
模型中的因果,因为您可能有多个控制器(将来)以类似或相同的方式影响模型中的事物。控制器只是将UI事件转换为业务事件的一种机制。模型是处理逻辑的地方。
您可能会发现以下stackoverflow线程非常有用:
虽然它们是特定于Java的,但这里讨论的想法与平台无关。
希望有所帮助。