Quick Cocos2dx MVC初步

今天看到了自己之前两年前写的一个地图编辑器,

写了不到一半就放弃了,

但是还是github上的小伙伴fork了,

真的感觉对不起那位伙计,

同时也鄙视一下一直以来懒得要死的自己,

希望这个demo不要太监了,为了自己,也为了家人。

吐槽完毕,正题来了。

昨晚回家难得写了几行代码,真的是只有几行,每天上午都在游戏中度过,游戏公司,你懂的。

下午又开始继续Quick-x的编码了。

上次把官方的sample/mvc的代码照着敲了一边,顺便入门了一下状态机,关于quick状态机,可以参考以下的帖子:

http://cn.cocos2d-x.org/tutorial/show?id=824

Model是存放数据,操作数据的,官方的Model包里面就放了几个DO,数据的存放与操作反而是放在了MyApp.lua下面。

个人感觉这个有点混乱,也许人家这样写是因为有别的原因吧,所以暂时将就用着。

之前我写过一个GameDataCenter的单例类本来是用来保存数据的,接口的啥的都写好了,后来被我手贱之下给删掉了,额,不堪回首。

再来说说Controller这个,官方的例子里面PlayerDualController.lua,这个类也是个大杂烩来的。

它继承自Node,添加了一些UIPushButton到,控制层不需要做显示相关的东西的,他只需要通知View层去如何显示而已,毕竟程序里面的控制器不是游戏手柄那样的控制器,

这个累不过也确实是一些Controller的正业,可以借鉴一下的。

View没啥好说的。

以上是自己学习官方的mvc例子的想法,可能官方只是想做个比较简单的sample说明一下而已。

如果做大项目,需要多人协作的话,其实这个结构需要优化一下的。

如果小玩意儿,为了性能和开发效率着想的话,倒是可以随自己的喜好去组建项目的。

毕竟各种臃肿的结构会增加项目尺寸,跨类访问需要消耗一定的性能的。

Quick Cocos2dx MVC初步

时间: 2024-10-08 15:20:44

Quick Cocos2dx MVC初步的相关文章

Quick Cocos2dx controller的初步实现

很久没有记笔记了,今天记一下,最近都在瞎忙活,都不知道自己干了些啥. 先来一张目前的效果图: 我的Controller是在官方的mvc sample的里面的PlayerDualController上更改的,所以很多地方还没来得及清理掉. 源码如下: 1 local PlayerController = class("PlayerController") 2 3 function PlayerController:ctor() 4 end 5 6 function PlayerContr

Quick Cocos2dx 调试问题

最近由于忙了一段时间,忙完了之后又迷茫了这么久,然后终于开始继续Quick-x的学习之路了. 然后遇到了一个比较棘手的问题. 虽然照着官方mvc的例子敲代码,但是还是不停的报错,报错的问题下次集结成一个帖子发出来好了. 今次记录的是对于错误的DEUG方面的问题. 我的首选当然是Eclipse + LDT了,因为从业是自java而始,继而是AS,用得最熟的莫过与FB了. 参考的是官方的文章: 用 Eclipse LDT 调试 quick-cocos2d-x 游戏 但是,进行到配置player的时候

Quick Cocos2dx Http通讯

服务端:Python 通讯协议:Http 参考文章: 1 用python实现一个基本的http server服务器 http://blog.sina.com.cn/s/blog_416e30630100gjyk.html 2 http://stackoverflow.com/questions/8470414/strange-jquery-error-code-501-message-unsupported-method-options 由于是照着刀塔传奇的思路来做的,刀塔传奇是无需进行常连接的

quick cocos2d-x 精灵大小(宽高)获取

quick下sprite的大小获取,记录一下: local w = sprite:getContentSize().width local h = sprite:getContentSize().height 今天连这个最基本的,都不知道怎么获取.挺实用的代码额~ quick cocos2d-x 精灵大小(宽高)获取,布布扣,bubuko.com

quick cocos2dx 判断坐标是否在精灵内部

local pos = ccp(10, 10)local sprite=display.newSprite("02.png")    //创建一个精灵 sprite:setPosition(ccp(10,10))self:addChild(sprite) if sprite:getBoundingBox():containsPoint(pos) then print("在内部") end quick cocos2dx 判断坐标是否在精灵内部,布布扣,bubuko.c

quick cocos2dx 3.x 配置win32工程

公司项目主体部分用c++,而ui部分用lua写,所以选择了用quick框架.项目先开发了ios/mac版,这两天试着配置其win32工程,遇到一些问题,记录一下(纯c++版本cocos2dx配置方法应该也是类似的). 先配debug模式: 把c++文件都添到工程中去,并在附加包含目录下配置c++文件的搜索路径.然后编译会遇到一些问题: 一,win32下fullPathForFilename函数与ios/mac下行为不一致的问题. fullPathForFilename当传入的参数是文件夹路径时,

quick cocos2dx 滚动条

--滚动条 labar local function valueChanged(strEventName,pSender) if nil == pSender then return end local pControl = tolua.cast(pSender,"CCControlSlider") local strFmt = nil if pControl:getTag() == 10 then print(pControl:getValue()) elseif pControl:

Quick Cocos2dx 场景对象基类实现

从使用Quick-Cocos2d-x搭建一个横版过关游戏(四)拷来个进度条类, 但是由于那个类有个bug,在setProgress里面self.fill是找不到的,所以我改进了一下,代码如下: 1 local Progress = class("Progress", function() 2 -- body 3 return display.newNode() 4 end) 5 6 function Progress:ctor(background, fill) 7 local pro

Quick Cocos2dx 与 DragonBones

照着官方的例子试验了一下DragonBone的使用,代码如下: 1 local AnotherScene = class("AnotherScene", function() 2 return display.newScene("AnotherScene") 3 end) 4 5 function AnotherScene:ctor() 6 self.curBehaviorId = 1; 7 self.layer = display.newLayer() 8 sel