quick-cocos2d-x 学习系列之十一mvc例子
mvc是一种设计模式,全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
1.代码组织结构
主要三个文件夹,models,views,controllers分别对应模型,视图,控制器(MVC)。
1.1Models
主要文件夹Actor.lua,Hero.lua
Hero.lua继承于Actor类。
Actor类实现了较色的攻击力、防御力、初始HP等。
还包括实现的状态机。
1.2Views
主要文件夹HeroView.lua
主要实现精灵状态变化后的HP变化,等级变化等视图。
通过视图注册模型事件,从而在模型发生变化时自动动态的更新视图。
1.3Controllers
主要文件PlayDuelController.lua
构造函数负责创建判断对象player是否存在,如果不存在则创建之。
再创建一个敌人。
设置变量
self.views_ = {}
self.bullets_ = {}
通过createView函数设置self.views_变量。
创建两个按钮一个是左边精灵开枪,一个是右边精灵开枪。
函数tick负责处理所有子弹位置,如果超出屏幕则处理掉。此外需要处理是否击中,如果击中也需要处理。
2.代码执行流程
MainScene场景中开始,该场景创建了一个新层,创建了一个PlayDuelController对象。
创建一个REFRESH按钮。按下后重新进入MainScene场景起到初始化作用,过渡场景的特效是flipy。
PlayDuelController对象是在Controllers文件夹中的,就可以理解是整个控制过程,具体见上节描述。
具体详细细节带后续增加。