下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

Cocos2D-X实例教程:碰撞检测简单实例

作者:课课家教育     来源: http://www.kokojia.com点击数:1702发布时间: 2019-05-06 14:33:51

标签: Cocos2D-X碰撞Cocos2D-X教程Cocos2D-X示例

  碰撞检测是我们游戏开发中非常重要的一部分,上几篇教程我们已经对碰撞检测有了大概的了解,本篇教程将以实例教大家在Cocos2d-x中如何设置碰撞检测。

  本篇教程将讲解导弹发射与碰撞部分的代码,总体来说就和一个微型的飞行射击游戏差不多,但是在这部分内容里,游戏运用了一些碰撞后的特效代码如:背景闪烁、地面出现弹坑……不过貌似cocos2d-x没有完全封装chipmunk,所以示例中有些功能实现起来过于麻烦,如地面的碰撞线段按边缘附加本来可用的marchAllWithBorder,这样的方法就得替换成手动设置……因此像弹坑这样的效果就不打算再做了,反正弹坑效果也就是混合效果,主要是混合图形后产生新的碰撞线段没什么办法,可以在日后学习box2d后再自己玩下……这里只演示导弹撞击墙体后的爆炸效果:

  1.首先需要定义一个炮弹的物理精灵,在原例中,通过自定义导弹对象的实现代码赋予了导出isTracking追踪重力点的属性,使得导弹可以在触摸移动时跟着移动的坐标飞行。这部分代码的实现方式我改用了前面用过的代码,把刚体、形状、精灵关联等代码全部封装进了自定义的导弹精灵类里:

  Cocos2D-X实例教程:碰撞检测简单实例_Cocos2D-X碰撞_Cocos2D-X教程_Cocos2D-X示例_课课家

  导弹需要在物理世界里,所以上面继承的是物理精灵类,下面是实现文件:

  

  一些计算、换算方法就自己琢磨下好了……下面是主层的类:

  

  然后是创建四面墙体,代码稍微改了下:

  

  然后是触屏部分的回调代码:

  

  最后是碰撞回调的代码:

  

  通过上面的代码就可以实现乌云按照触屏点发射导弹,并在与墙体碰撞时产生爆炸……因为有点懒,所以物理空间和形状的一些属性还是按照以前的代码设定,天空的闪烁动画也没做……这个自己有兴趣的话自己修改着玩就行了。有空再看看最后一节看能不能实现碰撞的撞击力,即可以在爆炸后把周围的箱子炸飞,目测是有cpBodyapplyImpulse这个函数……

赞(26)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程