读书人

cocos2d-x Box2d 入门事例

发布时间: 2013-10-11 14:52:39 作者: rapoo

cocos2d-x Box2d 入门例子
1.效果图(动态的gif见底部):


cocos2d-x Box2d 入门事例


还记得这篇文章吗?cocos2d-x Touch 事件应用的一个例子 球跟球之间的碰撞,球跟壁的碰撞使用了简单的向量。球最终停止下来也是因为向量不断地变小。这次我们要改用物理引擎Box2d来让球碰撞!先下载这个项目,打开Release.win32/Air Hockey.win32.exe先来个试玩吧。


2.Box2d如何在cocos2d-x中使用简单介绍


Box2d引擎中核心的是一个叫b2World的东西,它会创建一些b2Body的物体,当然这些物体的形状有多边形,圆形等,属性也各异:比如密度有大有小。创建完后,在游戏的一直调用的update函数里加上b2World->Step(),那些b2Body的物体就会根据你设置的属性有物理反应了,但是他们没有纹理,但他们有position,rotation等属性,我们把这属性应用到我们Cocos2d-x中的Sprite属性时,Sprite就像真的物体一样动起来了。


2.1 b2World设置


Box2d中使用的是一个叫做b2Vec2的向量。



    玩家用手指头触摸移动的白球我们建了一个Player的类,因为它是主动的,所以它的位置由触摸点决定,但会影响b2Body位置。红球,我们建立一个Ball的类,因为它是被动的,所以它的位置由b2Body决定红色的6根线段是b2Body,它的Fixture的形状是 b2EdgeShape,边的意思,球会跟它碰撞我们还建立了两个球门,就是图中两端黑色矩形,因为与它相碰时,我们不需要改变球的b2Body属性,但需要处理事件,所以isSensor设置为ture

理解上面提到的4点,我们的游戏就那么回事了。你可以跟没有使用Box2d的进行比较。


5.项目源码下载(请用7z解压)

http://www.waitingfy.com/?attachment_id=700

http://www.waitingfy.com/?p=696


6.游戏动态图


cocos2d-x Box2d 入门事例

参考:

《Cocos2d-X by Example Beginner’s Guide》



读书人网 >操作系统

热点推荐