quickcocos2dx framework

来源:互联网 发布:淘宝 相机回收 靠谱不 编辑:程序博客网 时间:2024/04/29 08:46

framework

cc

ui

init.lua

makeUIControl_

所有的ui下的组件都使用了这个方法,它为ui组件提供了components.ui.LayoutProtocol和components.behavior.EventProtocol导出。

另外,它注册了cc.Event.EXIT_SCENE事件,保证在退出SCENE的时候清除所有的事件引用。

components

Component.lua

所有组件的基类。提供了绑定bind_和导出方法exportMethods_的基本功能。

behavior.EventProtocol.lua

与 api.EventProtocol.lua 的作用大致相同。只是它继承了Components链。根据廖大的说法,这个类会替换api.EventProtocol.lua

behavior.StateMachine.lua

一个状态机的实现,一些组件使用了这个状态机。例如UIButton、UISlider。mvc sample中也使用了这个状态机。

ui.BasicLayoutProtocol.lua

布局的基本实现

ui.LayoutProtocol.lua

mvc

AppBase.lua

实现MVC中的唯一App,使用CCNotificationCenter注册了AppBase.APP_ENTER_BACKGROUND_EVENT和AppBase.APP_ENTER_FOREGROUND_EVENT两个事件,不知在真机上是否有用。

ModelBase.lua

实现MVC中的M。继承了EventProtocol的功能,可以发布事件。但是提供的初始化属性的方法我觉得没有什么作用,用起来很蹩脚。

Event.lua

Event.ENTER_SCENE                 = ENTER_SCENE_EVENTEvent.EXIT_SCENE                  = EXIT_SCENE_EVENTEvent.ENTER_TRANSITION_DID_FINISH = ENTER_TRANSITION_DID_FINISH_EVENTEvent.EXIT_TRANSITION_DID_START   = EXIT_TRANSITION_DID_START_EVENTEvent.CLEANUP                     = CLEANUP_EVENTEvent.ENTER_FRAME                 = ENTER_FRAME_EVEN

可以使用addScriptEventListener来注册这些事件,他们在 [quick]\lib\luabinding\cocos2dx\cocoa\CCEventDispatcher.tolua 中导出。

这里的几个事件是quick专有的,来源于下方 CCEventDispatcher.h

removeScriptEventListener并没有正确导出,第二个参数没有设置成LUA_FUNCTION。因此不太容易关闭这个注册。

这个实现是在传递事件是ENTER_FRAME的时候,开一个计时器。这种方式并不灵活,而且在多次调用的时候会出现定时器重复调用。

不建议使用这种方式来获取全局计时器事件。而应该在lua中自己启动一个计时器。

GameObject.lua

游戏中所有的组件(所有类)都应该实现它。它实现了组件的继承链。

Registry.lua

实现继承链的辅助类。它是一个组件库,保存所有注册的组件,为继承链中的组件实例化提供帮助。

EventProxy.lua

通过代理注册事件的好处:可以方便的在视图删除时,清理所以通过该代理注册的事件,同时不影响目标对象上注册的其他事件

EventProxy.new() 第一个参数是要注册事件的对象,第二个参数是绑定的视图。如果指定了第二个参数,那么在视图删除时,会自动清理注册的事

shortcodes.lua

这里保存一些为了提升开发效率而封装的快速代码。例如 addTo 将自己增加到父容器中,pos 设定坐标, onTouch 绑定一个触摸事件。支持链式操作。

cocos2d-x中没有的类

[quick]\lib\cocos2d-x\cocos2dx\draw_nodes\CCShapeNode.cpp

提供一些画图的快速方法。

[quick]\lib\cocos2d-x\cocos2dx\misc_nodes\CCClippingRegionNode.cpp

根据一个CCRect设定一个显示区域,与CCClippingNode的功能有些类似,但功能和使用更简单。

[quick]/lib/cocos2d-x/cocos2dx/cocoa/CCEventDispatcher.h

提供事件。详见上方的 Event.lua

tolua

CCNode

导出:[quick]\lib\luabinding\cocos2dx\base_nodes\CCNode.tolua

别名原名备注addTouchEventListenerregisterScriptTouchHandler removeTouchEventListenerunregisterScriptTouchHandler scheduleUpdatescheduleUpdateWithPriorityLua与 C++中 scheduleUpdate 的作用一致getPositionInCCPointgetPositionlua中调用getPosition,是两个返回值。比如使用别名才能返回CCPoint
0 0
原创粉丝点击