quick-cocos2d-x 学习系列之十一mvc例子

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.

最后增加NODE_EVENT事件,用于在退出的时候调用。

函数tick负责处理所有子弹位置,如果超出屏幕则处理掉。此外需要处理是否击中,如果击中也需要处理。

2.代码执行流程

MainScene场景中开始,该场景创建了一个新层,创建了一个PlayDuelController对象。

创建一个REFRESH按钮。按下后重新进入MainScene场景起到初始化作用,过渡场景的特效是flipy。

PlayDuelController对象是在Controllers文件夹中的,就可以理解是整个控制过程,具体见上节描述。

具体详细细节带后续增加。

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...