首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

【Cocosd2d实例教程8】Cocos2d实现碰撞检测(含实例)

2013-10-24 
【Cocosd2d实例教程八】Cocos2d实现碰撞检测(含实例)(转载请注明出处:http://blog.csdn.net/buptgshengod)1.

【Cocosd2d实例教程八】Cocos2d实现碰撞检测(含实例)

(转载请注明出处:http://blog.csdn.net/buptgshengod)

1.介绍     说到碰撞检测,最简单直观的例子就是超级玛丽里的吃金币功能,当两个物体碰撞在一起产生一定的效果。下面上图介绍下这章的实例。当机器人a走到机器人b的身上时,机器人b消失。【Cocosd2d实例教程8】Cocos2d实现碰撞检测(含实例)【Cocosd2d实例教程8】Cocos2d实现碰撞检测(含实例)
2.具体实现方式   其实思路很简单,就是规定每个精灵有他们自己的一个作用范围,当两个精灵的作用范围重叠时,一个精灵的不可见就可以了。     关于摇杆器控制精灵移动这些在前面的章节讲过了,就不多说。     首先在HelloWorldLayer.h中定义精灵。
-(void) update:(ccTime)dt{        [self collisionDetection:dt];//刷新下面定义的函数}//确定可碰撞范围,作用域。CGRectMake四个参数意义:前两个相对于左上角的x,y轴位置确定一个矩形,后两个是举行的长和宽-(CGRect) rectOfSprite:(CCSprite*)sprite{    return CGRectMake(sprite.position.x - sprite.contentSize.width / 2,                      sprite.position.y - sprite.contentSize.height /2,                      sprite.contentSize.width, sprite.contentSize.height);}//碰撞方法-(void) collisionDetection:(ccTime)dt{        //2.enemy & player collision detection    CGRect enemyRect = [self rectOfSprite:enemy];    CGRect playRect = [self rectOfSprite:player];    if (enemy.visible&& CGRectIntersectsRect(enemyRect, playRect)) {        enemy.visible = NO;//机器人b消失        [self unscheduleUpdate];//停止刷新    }    }


源代码下载地址
  

热点排行