cocos2d-x 3.x 物理碰撞机制

本文介绍了cocos2d-x 3.x中的物理引擎,包括如何创建物理边界、受重力影响的精灵以及重点讲解了物理碰撞检测的实现。通过设置物理世界、添加物理节点、创建精灵并应用物理body,以及利用EventListenerPhysicsContact进行碰撞监听,简化了游戏开发中的物理交互过程。
摘要由CSDN通过智能技术生成

最近又弄了物理引擎,写一下吧,下面有在其他博客学习到的知识,加上自己的理解,总结下。

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中

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. class PhysicsLayer : public cocos2d::Layer  
  2. {  
  3.     ...  
  4.     // add following codes设置层中的物理世界  
  5.     void setPhyWorld(PhysicsWorld* world){m_world = world;}  
  6.    
  7.     private:  
  8.         PhysicsWorld* m_world;  
  9.     ...  
  10. }  
PhysicsLayer.cpp中的createScene()方法中添加下面代码:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值