最近又弄了物理引擎,写一下吧,下面有在其他博客学习到的知识,加上自己的理解,总结下。
cocos2d-x 3.X中全新的封装的物理引擎给了开发者最大的便捷,你不用再繁琐与各种物理引擎的细节,完全的封装让开发者可以更快更好的将物理引擎的机制添加到自己的游戏中,简化的设计是从2.0到3.X的一个质的飞跃。
cocos2d-x 3.0+中的物理属性:
1、物理世界被集成到场景中,当你创建一个场景,你可以直接创建基于物理世界或者不使用物理世界的场景。
2、Node拥有它自己的body属性。(sprite也是node)‘
3、cocos2d-x 3.0 已经封装了物理属性Body(PhysicsBody),Shape(PhysicsShape),Contact(PhysicsContact),Joint(PhysicsJoint)和World(PhysicsWorld),更加方便使用。
4、方便的使用listener-EventListenerPhysicsContact进行碰撞检测。
当然,封装好的物理引擎可以简化开发难度,如果有能力的话也可以直接使用Box2D和Chipmunk的原生的物理引擎进行开发,这样难度会有所提升。
下面的代码创建一个带物理世界的场景,并传递到场景中的层上。
PhysicsLayer.h中
- classPhysicsLayer:publiccocos2d::Layer
- {
- ...
- //addfollowingcodes设置层中的物理世界
- voidsetPhyWorld(PhysicsWorld*world){m_world=world;}
- private:
- PhysicsWorld*m_world;
- }