本篇介紹兩個常用知識,一個是粒子的自動釋放機制函數,因為不少童鞋說cocos2dx為什麼沒有? 其實是沒找到,這裡特意拿出來說下!另外一個是如何響應android的menu菜單和back傳回事件的方法;
首先對于cocos2dx中對于粒子自動釋放的函數himi這裡給出,不少童鞋都在群裡或者論壇有問道!
1
2
3
4
5
6
//添加一個粒子特效
ccparticlesystem *tempsystem = arch_optimal_particle_system::particlewithfile("test.plist");
//tempsystem.positiontype=kccpositiontyperelative;//備注1
tempsystem->setpositiontype(kccpositiontypefree);
this->addchild(tempsystem);
tempsystem->setisautoremoveonfinish(true);//這裡就是粒子自動釋放的函數啦。~
這裡setisautoremoveonfinish(bool bl);函數就是自動釋放記憶體的函數啦,那麼這裡細心的童鞋會看到備注1 ,備注函數是設定粒子的移動類型為相對位置,具體請檢視:
<a href="http://www.himigame.com/iphone-cocos2d/472.html" target="_blank">【ios-cocos2d遊戲開發之十】添加粒子系統特效并解決粒子特效與layer之間的坐标問題;</a>
ok,下面himi介紹如何在cocos2dx中處理android os的裝置的menu和back案件的響應處理;
其實很簡單,步驟如下:
1. 在需要響應的.h 中添加如下兩個虛函數:
virtual void keybackclicked();//android 傳回鍵
virtual void keymenuclicked();//android 菜單鍵
2. .cpp類中實作如上兩個函數即可,如下,himi這裡測試使用,world是個layer
7
void world::keybackclicked(){
cclog("android- keybackclicked!");
}
void world::keymenuclicked(){
cclog("android- keymenuclicked!");
3.初始化的時候記得開啟: this->setiskeypadenabled(true);
ok,下面himi将項目編譯後運作android版的項目:
運作結果如下:

然後himi嘗試點選menu和back按鍵,列印如上圖所示,正常處理到了;