cocos2d x學習之物體接觸檢測

2021-06-20 03:30:48 字數 1081 閱讀 5903

遊戲中經常會用到這樣的檢測技術。例如,飛行遊戲中飛機發射的子彈是否擊中敵人;打鬥類遊戲中英雄的**是否打中敵人;

所以,我覺得很有必要總結一下

首先,我們要定義幾個ccarray型別的陣列,用於儲存要檢測是否相互接觸的物體(一般來說是精靈)

我們就以子彈和敵機的例子來描述一下

在h檔案上新增:

ccarray *array_bullet;             //儲存子彈

ccarray *array_enemyplane; //儲存敵機

faction(float delta); //檢測接觸的函式

在cpp檔案上:

在建立精靈的函式中加入:

array_bullet = ccarray::create();                      //建立初始化ccarray

array_enemyplane = ccarray::create();

array_player->retain(); //引用數加一,這樣在其它的函式中也可以用到

array_player->retain();

array_player->addchild(spritebulletobj); //新增子彈精靈進陣列

array_enemyplane->addchild(spriteplaneobj); //新增子彈精靈進陣列

schedule(schedule_selector(faction())); //用定時器不斷檢測是否有物體接觸

在faction()函式中:

faction(float delta)}}

}

最後記得要release掉兩個ccarray陣列。

好了,這樣乙個簡單的檢測物體是否接觸的功能就完成了。

cocos2d x 之UITextField的使用

本文使用的是cocos2d x 2.1.6版本,cocosstudio1.6.0.0版本。其呼叫的相關 如下 bool helloworld init void helloworld textfieldevent ccobject psender,textfiledeventtype type 不過...

Cocos2d x之場景切換

在很多rpg遊戲中大部分存在多個場景,如開始的歡迎介面 選單介面 戰鬥介面 場景切換只需要呼叫ccdirector shareddirector replacescene s s為新的場景,這句 的是含意,是用新的場景s去替換掉舊的場景,但是這樣的場景替換,來得太突然,給使用者的感覺不太好,我們需要...

cocos2dx之CCAnimate建立乙個動畫

前面的文章中也有例子是建立乙個動畫,利用的是檔案建立,將所有的sprite載入到乙個檔案中去,然後讀出,現在我們嘗試不用檔案,直接利用ccanimate來建立乙個sprite動畫,例子 如下 void myactionanimatelayer initlayer sprintf szname,ima...