HelloBox2D实例
使用Box2D引擎进行开发过程,如图12-15所示。下面我们就按照这个步骤介绍一下代码部分。首先看一下看HelloWorldScene.h文件,它的代码如下:
- #ifndef__HELLOWORLD_SCENE_H__
- #define__HELLOWORLD_SCENE_H__
- #include"cocos2d.h"
- #include"Box2D/Box2D.h"①
- #definePTM_RATIO32②
- classHelloWorld:publiccocos2d::Layer
- {
- b2World*world;③
- public:
- staticcocos2d::Scene*createScene();
- virtualboolinit();
- virtualvoidupdate(floatdt);④
- virtualboolonTouchBegan(cocos2d::Touch*touch,cocos2d::Event*event);⑤
- CREATE_FUNC(HelloWorld);
- voidinitPhysics();⑥
- voidaddNewSpriteAtPosition(cocos2d::Vec2p);⑦
- };
- #endif//__HELLOWORLD_SCENE_H__
上述第①行代码#include "Box2D/Box2D.h"是引入使用Box2D引擎需要头文件。第②行代码#define PTM_RATIO 32是定义宏PTM_RATIO,PTM_RATIO是屏幕上多少像素为1米,32表示屏幕上32像素表示1米,在Box2D中单位使用MKS公制系统,即:长度单位采用米,质量单位采用千克,时间单位采用秒。
代码第③行world是声明物理世界b2World成员变量。第④行代码是游戏循环函数。第⑤行代码是触摸点击响应函数。第⑥行代码是声明初始化物理引擎函数initPhysics。第⑦行是声明addNewSpriteAtPosition函数,是在触摸点创建一个精灵对象。
HelloWorldScene.cpp中HelloWorld::init()函数代码如下:
copy