Actionscript 3 模型视图控制器-在何处保存简单逻辑
我经常看到模型-视图-控制器模式的不同实现,并且完全理解您应该调整和使用最适合您需要的,但是我想知道在控制器或模型中保留简单游戏逻辑的优点/缺点/最佳实践是什么 从本质上说,我应该用哪种方式来做这件事 在这个简单的例子中,玩家受到伤害,我列出了三种可能的处理方法: 1. 控制者: 型号:Actionscript 3 模型视图控制器-在何处保存简单逻辑,actionscript-3,model-view-controller,design-patterns,Actionscript 3,Model View Controller,Design Patterns,我经常看到模型-视图-控制器模式的不同实现,并且完全理解您应该调整和使用最适合您需要的,但是我想知道在控制器或模型中保留简单游戏逻辑的优点/缺点/最佳实践是什么 从本质上说,我应该用哪种方式来做这件事 在这个简单的例子中,玩家受到伤害,我列出了三种可能的处理方法: 1. 控制者: 型号: 当然是在模型中,因为您可能有多个控制器(将来)以类似或相同的方式影响模型中的事物。控制器只是一种将UI事件转换为业务事件的机制。模型是处理逻辑的地方 您可能会发现以下stackoverflow线程非常有用:
当然是在模型中,因为您可能有多个控制器(将来)以类似或相同的方式影响模型中的事物。控制器只是一种将UI事件转换为业务事件的机制。模型是处理逻辑的地方 您可能会发现以下stackoverflow线程非常有用: 虽然它们是特定于java的,但这里讨论的思想是独立于平台的
希望这会有所帮助。好的,谢谢-因此,您是否可以保留模型中的所有逻辑?只需使用控制器来设置模型中的内容?我会使用模型作为数据结构api-您可以在输入所有需要的内容后检索所需内容-其他人不应该知道这些值是如何计算的:)而控制器只是用来传递数据
_model.playerDamage - 15;
if (_model.playerDamage <= 0){
_model.playerLives --;
_model.restartLevel();
}
_model.playerDamage = 15;
function set playerDamage(value:int){
playerDamage = value;
updatePlayer();
}
function updatePlayer():void{
if (playerDamage<=0){
palyerLives --;
restartLevel();
}
}
_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'));
}