日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/4/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Cocosd2d实例教程八】Cocos2d实现碰撞检测(含实例) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(轉載請注明出處:http://blog.csdn.net/buptgshengod

1.介紹

? ? ?說到碰撞檢測,最簡單直觀的例子就是超級瑪麗里的吃金幣功能,當兩個物體碰撞在一起產生一定的效果。下面上圖介紹下這章的實例。當機器人a走到機器人b的身上時,機器人b消失。

2.具體實現方式

? ? 其實思路很簡單,就是規定每個精靈有他們自己的一個作用范圍,當兩個精靈的作用范圍重疊時,一個精靈的不可見就可以了。 ? ? ?關于搖桿器控制精靈移動這些在前面的章節講過了,就不多說。 ? ? ?首先在HelloWorldLayer.h中定義精靈。 CCSprite *player;//機器人aCCSprite *enemy;//機器人b ? ? ?打開HelloWorldLayer.m。在init中改變代碼 -(id) init {// always call "super" init// Apple recommends to re-assign "self" with the "super's" return valueif( (self=[super init]) ) {//get screen's sizeCGSize winSize = [[CCDirector sharedDirector] winSize];//獲得屏幕大小//機器人benemy = [CCSprite spriteWithFile:@"2.png"];enemy.position = CGPointMake(winSize.width / 2+120,winSize.height/2);[self addChild:enemy z:1];//機器人aplayer = [CCSprite spriteWithFile:@"1.png"];player.position = CGPointMake(winSize.width / 2-50,winSize.height/2);[self addChild:player z:1];self.isTouchEnabled = YES;[self initJoystick];//遙感器[self scheduleUpdate];//啟動定時刷新}return self; } ? ? ? ?加入搖桿控制函數,這里不多說了。 ? ? ? ?下面是關鍵的碰撞檢測代碼。 -(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 detectionCGRect enemyRect = [self rectOfSprite:enemy];CGRect playRect = [self rectOfSprite:player];if (enemy.visible&& CGRectIntersectsRect(enemyRect, playRect)) {enemy.visible = NO;//機器人b消失[self unscheduleUpdate];//停止刷新}}

源代碼下載地址
??

總結

以上是生活随笔為你收集整理的【Cocosd2d实例教程八】Cocos2d实现碰撞检测(含实例)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。