我经常看到 Model View Controller 模式的非常不同的实现,并且完全理解您应该适应和使用最适合您需要的东西,但我想知道在以太中保持简单游戏逻辑的优点/缺点/最佳实践是什么 Controller 或模型?
从本质上讲,我应该这样做的正确方法是什么?
对于这个简单的例子,玩家受到伤害,我列出了三种可能的处理方法:
1.
Controller :
_model.playerDamage - 15;
if (_model.playerDamage <= 0){
_model.playerLives --;
_model.restartLevel();
}
2.
Controller :
_model.playerDamage = 15;
模型:
function set playerDamage(value:int){
playerDamage = value;
updatePlayer();
}
function updatePlayer():void{
if (playerDamage<=0){
palyerLives --;
restartLevel();
}
}
3.
Controller :
_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'));
}
最佳答案
当然在模型中,因为您可能有多个 Controller (将来)以类似或相同的方式影响模型中的事物。 Controller 只是一种将 UI 事件转换为业务事件的机制。模型是处理逻辑的地方。
您可能会发现以下 stackoverflow 线程很有用:
尽管它们是特定于 Java 的,但这里讨论的想法是独立于平台的。
希望有帮助。
关于actionscript-3 - Model View Controller - 在哪里保持简单的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5351246/