cocos2d-2.1rc0-x-2.1.2中的Box2dTestBed的学习和研究
来源:互联网 发布:网络安全教育宣传计划 编辑:程序博客网 时间:2024/06/05 10:30
程序的运行流程:
打开TestCpp的工程
1. main.cpp
2. AppDelegate.cpp
AppDelegate类继承自CCApplication,而CCApplication又继承自CCApplicationProtocol,这个类的作用负责掌管程序的生命周期,并设定一些虚方法用来执行事件的触发,在不同的操作系统平台对应不同的实现方法。
应用程序启动完成时
应用程序进入后台
应用程序从后台切换到前台
虚析构函数
3. controller.cpp
controller.cpp定义了一个TestController类,继承自CCLayer,
构造函数,负责根据示例的个数来在场景当中批量地生成菜单按钮列表,以及注册对应的点击事件(menuCallback函数),用zOrder进行指定场景的id (i+10000)。
menuCallback函数,当点击某个菜单的时候被触发,获取按钮对应的zOrder,转换为场景的nIdx,作为调用CreateTestScene的传入参数。
CreateTestScene方法是一个静态方法,传入一个编号nIdx,返回一个指向测试场景基类TestScene类的指针,根据不同的nIdx,返回不同的测试场景
4. testBasic.cpp
这个文件定义了TestScene类,继承自CCScene,
构造方法:
虚onEnter:初始化示例场景
纯虚runThisTest:实例化示例Layer并让CCDirector来切换场景
虚MainMenuCallback:返回菜单列表,实例化主菜单Layer并让CCDirector切换场景(每个测试场景右下角的MainMenu按钮)
宏方法,create[className]:返回以className为名称的CCLayer的类的实例。
5.Test.cpp
该类存在于Cpp\TestCpp\Classes\Box2DTestBed\TestEntries.cpp
继承自b2ContactListener,也就是负责碰撞检验的实现
构造函数负责设置重力、创建b2World,注册DestructionListener,注册ContactListener(自身),注册SetDebugDraw,创建groundBody,
DestructionListener:负责处理关键、形状的销毁
ContactListener:负责碰撞检验
SetDebugDraw:负责调试信息的现实,包括物件矩形框等便于开发测试的辅助图形
----------------------------------
作为继承ContactListener类的实现部分:
虚析构函数:
BeginContact:
EndContact:
PreSolve:
PostSolve:
6.TestEntries.cpp
该类存在于Cpp\TestCpp\Classes\Box2DTestBed\TestEntries.cpp,负责,依靠引用所有的demo示例类的头文件,并具体定义了Test.h当中的(extern) g_testEntries[]数组,该数组当中存放的数据结构为TestEntry结构体,{name,返回Test*的具体函数}
将Test.cpp与TestEntries.cpp分离的好处显而易见,这样可以减少Test.cpp对其他头文件的依赖,以实现减肥的目的
int g_totalEntries = sizeof(g_testEntries) / sizeof(g_testEntries[0]);
7.Box2dView.cpp
该文件里面定义了3个类:MenuLayer 、Box2DView、Box2dTestBedScene
[未完待续...先躺啦 嗷嗷嗷嗷]
- cocos2d-2.1rc0-x-2.1.2中的Box2dTestBed的学习和研究
- cocos2d-2.1rc0-x-2.1.3
- Cocos2d-x 3.0rc0版本项目的创建和部署
- cocos2d-2.1rc0-x-2.1.3使用lua
- cocos2d-2.1rc0-x-2.1.3 for mac
- cocos2d-2.1rc0-x-2.1.2+eclipse+win7无cygwin环境配置入门
- cocos2d-2.1rc0-x-2.1.2-hotfix win32 android环境搭建
- vs2005编译Cocos2d-x,当前最新版本cocos2d-2.1rc0-x-2.1.3
- vs2005安装cocos2d-x模版(版本cocos2d-2.1rc0-x-2.1.3)
- cocos2d-x 3.0rc0 win7
- Cocos2d-x 3.0rc0 的Win32工程添加CocoStudio库
- cocos2d-x-3.0rc0 跑android工程遇到的几个问题
- Cocos2d-x 3.0rc0中,项目的创建与运行
- Cocos2d-x 3.0rc0 的Win32工程添加CocoStudio库
- Cocos2d-x 3.0rc0 的Win32工程添加CocoStudio库
- Cocos2d-x 3.0rc0 的Win32工程添加CocoStudio库
- Cocos2d-x 3.0rc0 的Win32工程添加CocoStudio库
- cocos2d-2.1rc0-x-2.1.3建android工程Hello World例子
- 高精度之求N!
- 使用 SetProcessWorkingSetSize 降低程序内存
- 有谁能给出个好点的SQL语句或存储过程么?
- pNFS读操作
- 黑马程序员—正则表达式
- cocos2d-2.1rc0-x-2.1.2中的Box2dTestBed的学习和研究
- poj2409polya定理
- 线程通信
- sql: structured query language(结构化查询语言)
- iOS网络编程-ASIHTTPRequest小例子-数据请求队列
- 如何安装rvm ruby and rails
- Oracle数据库之SQL单行函数---日期函数集锦
- linux gnu c feature
- 模板堆栈