box2d 碰撞检测_Box2d 学习笔记 2个物体堆叠拖动及简单碰撞检测

声明:文章代码参考自子龙山人的撞球小游戏,链接地址在文章结尾4月1日接触了Box2d,开始了物理引擎学习之路,这次要求的实现比较简单,就是实现多个(例子中2个)物体的堆叠,鼠标拖动和简单碰撞。init函数首先是类中添加成员函数及数据,世界,边框,2个paddle,鼠标关节,响应触屏事件b2World*_world;b2Body*_groundBody;b2Fixture*_bottomFix...
摘要由CSDN通过智能技术生成

声明:文章代码参考自子龙山人的撞球小游戏,链接地址在文章结尾

4月1日接触了Box2d,开始了物理引擎学习之路,这次要求的实现比较简单,就是实现多个(例子中2个)物体的堆叠,鼠标拖动和简单碰撞。

init函数

首先是类中添加成员函数及数据,世界,边框,2个paddle,鼠标关节,响应触屏事件

b2World *_world;

b2Body *_groundBody;

b2Fixture *_bottomFixture;

b2Body *_paddleBody;

b2Fixture *_paddleFixture;

b2Body *_paddleBody2;

b2Fixture *_paddleFixture2;

b2MouseJoint *_mouseJoint;

voidccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);

voidccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);

voidccTouchesEnded(CCSet* pTouches, CCEvent* pEvent);

voidupdate(ccTime dt);

然后是init函数,前面和HelloWorld中的一样,只不过去掉了背景图和label,

需要说明的是:1.我的cocos2d-x是3月初下的版本,还算比较新,和网上啊书中的教程中的很多接口已经不同了,比如生成世界的方法。

2.小满的教程中有对Box2d的研究,我有参考他的实现,书上的setAsEdge方法已经被删除了,只能用setAsBox,此函数参数说明:1,2参数分别是要生成的对象的长度和宽的的1半,拿bottom来说我要生成长度为程序窗口的长度,所以用窗口长度除以2,

3参是生成的对象的位置中心,我的边界的参考点是(0,0),所以bottom设置在如下位置,4参是旋转角度。

CCSize screenSize = CCDirector::sharedDirector()->getWinSize();

b2Vec2 gravity = b2Vec2(0.0f, -10.0f);  //老师要求是实现物体堆叠 那么还是加上重力吧

booldoSleep =true;

_world = newb2World(gravity);//新版本很多方法都改参数了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值