捕魚達回顧
【cocos2d-x ios遊戲開發-捕魚達人1】內容介紹
上節回顧
【cocos2d-x ios遊戲開發-城市跑酷3】讀取資源,設定背景層
遊戲的元素應該是多種多樣的,只有乙個背景就略顯單調了,這裡我們來加入一些道具。
來看下具體的實現:
//加入背景:城市燈火
_background = ccsprite::createwithspriteframename(background.png);
_background->setanchorpoint(ccp(0,0));
_gamebatchnode->addchild(_background, kbackground);新增路燈://設定路燈
_foreground = ccsprite::createwithspriteframename(lamp.png);
_foreground->setanchorpoint(ccp(0,0));
_gamebatchnode->addchild(_foreground, kforeground);新增雲朵:用陣列ccarray 存雲朵,並設定雲朵的位置。
ccarray 是cocos2dx中充分支援的類。它被用來優化遊戲。你可以在cocos2d/support中找到這個類。
它和蘋果的nsmutablearr類相似,但是ccarray的表現力更好一些。
注意:ccarray和ccdictionary類被用來儲存cocox2dx的類,然而他們並沒有和stl一樣強大。因此,沒有必要使用ccarray或者ccdictionary來替代你的專案中的一些stl。
ccarray僅僅提供物件包裝類的功能
ccarray繼承自ccobject類(ccobject的主要目的是自動的**記憶體),並且提供一系列介面。
注意點一:
ccarray中有乙個remove方法和乙個fastremove方法,看一下源**可知,remove是乙個完全的移除操作,而faseremove僅僅將當前元素release了,主要的區別點在於向前移動了這個元素之後的元素之後,沒有顯式的刪除元素。**如下:
unsigned int remaining = arr->num - index;
if(remaining>0)
faseremoveobject是快速的,但是它也意味著在ccarray中的物件將會改變位置,那麼如果你使用ccarray的排序資訊,你不應該使用faseremoveobject方法。
注意點二:
ccarray初始它的引用計數為1,並且被設定為了autorelease。因此建立ccarray的時候你需要去retain,並且在析構函式中你需要手動的release記憶體。否則使用過程中可能ccarray已經釋放造成錯誤。
現在看一下具體的使用方法:
//加入精靈雲
ccsprite * cloud;
_clouds = ccarray::createwithcapacity(4);
_clouds->retain();
float cloud_y;
for (int i = 0; i < 4; i++) 加入一組競技團隊://加入乙個競技團隊
_jam = ccsprite::createwithspriteframename(jam_1.png);
ccanimation* animation;
animation = ccanimation::create();
//ccspriteframe對應的就是幀,將ccspriteframe新增到ccanimation生成動畫資料,
//用ccanimation生成ccanimate(就是最終的動畫動作),最後可以用ccsprite執行這個動作。
ccspriteframe * frame;
int i;
for(i = 1; i <= 3; i++) ;
sprintf(szname, jam_%i.png, i);
frame = ccspriteframecache::sharedspriteframecache()->spriteframebyname(szname);
animation->addspriteframe(frame);
}//設定每兩幀間時間間隔
animation->setdelayperunit(0.2f / 3.0f);
//設定動畫結束後是否保留動畫幀資訊
animation->setrestoreoriginalframe(false);
//設定迴圈**次數 (-1:無限迴圈)
animation->setloops(-1);
//由這個動畫資訊建立乙個序列幀動畫
_jamanimate = ccanimate::create(animation);
//儲存這個動畫
_jamanimate->retain();
_gamebatchnode->addchild(_jam, kbackground);
cocos2d x IOS遊戲開發
捕魚達回顧 cocos2d x ios遊戲開發 捕魚達人1 內容介紹 上節回顧 cocos2d x ios遊戲開發 城市跑酷14 重寫觸屏 touch 事件處理機制,響應玩家操作 cclabelbmfont的特色就是以占用更多記憶體為代價加快標籤的更新,這與其他任何ccsprite類相似 在遊戲中使...
cocos2d x ios遊戲開發初認識 一
用xcode新建工程,我用版本是xcode5開始執行會出現兩個錯誤,首先進行改錯。錯誤 clang error unknown argument websockets wunused command line argument hard error in future 只需將other link中 ...
cocos2dx IOS微信分享
c2dshareinstance.h c2dshareinstance.mm mm是用於c 與ios混編 是用於cocos2dx 與 ios 進行互動的,內部實現如下 ifndef c2dshareinstance h define c2dshareinstance h include cocos2...