溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

[cocos2d-x]cocos2dx與cocos2d的一些變化

發(fā)布時間:2020-04-07 14:37:26 來源:網(wǎng)絡 閱讀:235 作者:蓬萊仙羽 欄目:游戲開發(fā)

cocos2dx v2.0版本發(fā)布一段時間了,現(xiàn)在最新版本是 cocos2d-2.0-rc2-x-2.0.1 ;這段時間Himi對2.x的更新版也有關(guān)注,也嘗試使用過,發(fā)現(xiàn)不少地方都有改動,對于Himi最新項目快到尾聲的考慮,所以也沒有更新引擎到最新。那么今天開始Himi將陸續(xù)使用最新v2.x版本的一些東東,同步更新一些經(jīng)常使用的改動以及值得注意的地方發(fā)博文出來與大家共享;

在之前我們使用cocos2dx 1.x版本中,我們都知道,創(chuàng)建一個CCObject類,都是類名然后::類名去除CC這個規(guī)律來創(chuàng)建和初始化,但是這一條在Cocos2dx 2.x版本就不行了,在cocos2dx  2.x版本中初始化和創(chuàng)建類基本都是 create 關(guān)鍵字開頭創(chuàng)建。

首先我們來看第一個改動:  CCLayer初始化

自定義Layer,類名:World

1
2
3
4
5
6
.h中:
1.x版本Layer函數(shù)
LAYER_NODE_FUNC(World);
 
2.x版本Layer函數(shù)
LAYER_CREATE_FUNC(World);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.cpp中:
1.x版本的重寫函數(shù):
 
CCScene* World::scene()
{
    CCScene *scene = CCScene::node();
    World *layer = World::node();
    scene->addChild(layer);
    return scene;
}
 
2.x版本的重寫函數(shù):
 
CCScene* World::scene()
{
    CCScene *scene = CCScene::create();
    World *layer = World::create();
    scene->addChild(layer);
    return scene;
}

 

然后我們看第二個常用的CCArray的初始化:

1
2
3
4
5
1.x版本的CCArray創(chuàng)建:
CCArray*array = CCArray::array();
 
2.x版本的CCArray創(chuàng)建: 
CCArray*array = CCArray::create();

 

 

第三個我們看文件路徑相關(guān)CCFileUtils函數(shù)使用:

[cpp] view plaincopy
  1. 1.x版本的使用:   
  2. const char* fullpath = cocos2d::CCFileUtils::fullPathFromRelativePath(patha.c_str());  
  3.    
  4. 2.x版本的使用:  
  5. const char* fullpath = cocos2d::CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(patha.c_str());  



第四個精靈的創(chuàng)建:  

[cpp] view plaincopy
  1. 1.x中精靈的創(chuàng)建:  
  2.  CCSprite *sp = CCSprite::spriteWithFile("himi.png");  
  3. 2.x中精靈的創(chuàng)建:  
  4.  CCSprite *sp = CCSprite::create("himi.png");  



第五個注冊觸屏事件監(jiān)聽

[cpp] view plaincopy
  1. 1.x中注冊:  
  2. CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this, 0, false);  
  3.    
  4. 2.x中注冊:  
  5. CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, false);  


第六個粒子相關(guān)

[cpp] view plaincopy
  1. 1.x粒子創(chuàng)建和設置自動釋放設置  
  2. CCParticleSystem *tempSystem =  CCParticleSystem::particleWithFile("himi.plist");  
  3.         tempSystem->setIsAutoRemoveOnFinish(true);  
  4.            
  5. 2.x粒子創(chuàng)建和設置自動釋放設置          
  6. CCParticleSystem *tempSystem =  CCParticleSystemQuad::create("himi.plist");  
  7.         tempSystem->setAutoRemoveOnFinish(true);<span style="color:#ff0000;">  
  8. </span>  



第七個:CCFileData 類去除了:

[cpp] view plaincopy
  1. 1.x的CCFileData的使用:  
  2.         
  3. cocos2d::CCFileData fileDataClip(const char *pszFileName, const char *pszMode);  
  4.     
  5. 2.x中CCFileData被刪除,直接使用如下函數(shù)即可代替:  
  6. CCFileUtils::sharedFileUtils()->getFileData(const char *pszFileName, const char *pszMode, unsigned long *pSize)  


第八個 Action 動作使用與創(chuàng)建:

[cpp] view plaincopy
  1. 1.x動作的創(chuàng)建與使用:  
  2. this->runAction(CCSequence::actions(  
  3.                                             CCMoveTo::actionWithDuration(ccpDistance(this->getPosition(), target) / velocity,  
  4.                                                                          target),  
  5.                                             CCCallFunc::actionWithTarget(this, callfunc_selector(Player::removeTarget))  
  6.                                             ,NULL));  
  7.     
  8. 2.x的動作創(chuàng)建和使用:        
  9. this->runAction(CCSequence::create(  
  10.                                            CCMoveTo::create(ccpDistance(this->getPosition(), target) / velocity,  
  11.                                                             target),  
  12.                                            CCCallFunc::create(this, callfunc_selector(Player::removeTarget))  
  13.                                            ,NULL));  


其實以上這幾個例子比較有代表性了,其他的一些區(qū)分我想大家也能找到不一定的規(guī)律。那么本篇對于cocos2dx v2.0版本的差異就講述到這,后續(xù)如果Himi還發(fā)現(xiàn)比較重點區(qū)分的地方也一定會博文分享出來的。   [cocos2d-x]cocos2dx與cocos2d的一些變化


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI