cocos2dx(v2.x)與(v1.x)的一些常用函數區別講解

來源:互聯網
上載者:User

初學,各種問題,發現時版本不一樣啦

轉自:http://xiaominghimi.blog.51cto.com/2614927/969984

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

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

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

自訂Layer,類名:World

.h中:1.x版本Layer函數LAYER_NODE_FUNC(World);2.x版本Layer函數LAYER_CREATE_FUNC(World);
.cpp中:1.x版本的重寫函數:CCScene* World::scene(){CCScene *scene = CCScene::node(); World *layer = World::node(); scene->addChild(layer); return scene;}2.x版本的重寫函數:CCScene* World::scene(){CCScene *scene = CCScene::create(); World *layer = World::create(); scene->addChild(layer); return scene;}

 

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

1.x版本的CCArray建立: CCArray*array = CCArray::array();2.x版本的CCArray建立:  CCArray*array = CCArray::create();

 

 

第三個我們看檔案路徑相關CCFileUtils函數使用:

1.x版本的使用: const char* fullpath = cocos2d::CCFileUtils::fullPathFromRelativePath(patha.c_str());2.x版本的使用:const char* fullpath = cocos2d::CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(patha.c_str());

 

 

第四個精靈的建立:  

1.x中精靈的建立: CCSprite *sp = CCSprite::spriteWithFile("himi.png");2.x中精靈的建立: CCSprite *sp = CCSprite::create("himi.png");

 

 

第五個註冊觸屏事件監聽:

1.x中註冊:CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this, 0, false);2.x中註冊:CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, false);

 

 

第六個粒子相關

1.x粒子建立和設定自動釋放設定CCParticleSystem *tempSystem =  CCParticleSystem::particleWithFile("himi.plist");        tempSystem->setIsAutoRemoveOnFinish(true);        2.x粒子建立和設定自動釋放設定        CCParticleSystem *tempSystem =  CCParticleSystemQuad::create("himi.plist");        tempSystem->setAutoRemoveOnFinish(true);

 

 

第七個:CCFileData 類去除了:

 

1.x的CCFileData的使用:     cocos2d::CCFileData fileDataClip(const char *pszFileName, const char *pszMode); 2.x中CCFileData被刪除,直接使用如下函數即可代替:CCFileUtils::sharedFileUtils()->getFileData(const char *pszFileName, const char *pszMode, unsigned long *pSize)

 

 

第八個 Action 動作使用與建立:

1.x動作的建立與使用:this->runAction(CCSequence::actions(                                            CCMoveTo::actionWithDuration(ccpDistance(this->getPosition(), target) / velocity,                                                                         target),                                            CCCallFunc::actionWithTarget(this, callfunc_selector(Player::removeTarget))                                            ,NULL)); 2.x的動作建立和使用:      this->runAction(CCSequence::create(                                           CCMoveTo::create(ccpDistance(this->getPosition(), target) / velocity,                                                            target),                                           CCCallFunc::create(this, callfunc_selector(Player::removeTarget))                                           ,NULL));

 

其實以上這幾個例子比較有代表性了,其他的一些區分我想大家也能找到不一定的規律。那麼本篇對於cocos2dx v2.0版本的差異就講述到這,後續如果Himi還發現比較重點區分的地方也一定會博文分享出來的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.