以下資料全部轉載:
官方文檔
★ cocos2d-x文檔 - 開發者文檔 http://cn.cocos2d-x.org/article/
安裝環境
★ Cocos2d-x v2.2.2版本+Win7+VS2010環境搭建
Cocos2d-x v2.2.1安裝類似,xp也可以。
★ cocos2dx基礎篇(1)——Cocos2D-X 和 VS2010 環境配置
安裝Cocos2d-x v2.2.3
★ cocos2dx基礎篇(3)——第一個程序HelloWorld
對原理和部分函數做了講解,很不錯。
問題:
1,編譯時出現:轉換到 COFF 期間失敗: 文件無效或損壞。
不用管cvtres.exe,只需在項目中配置下就ok。項目-屬性-配置屬性-鏈接器-清單文件-生成清單,改成“否”即可。
編譯apk在模擬器上運行
★ cocos2dx基礎篇(2)——Win32移植到Android
我安裝了adt集成環境(adt-bundle-windows-x86-20130917.467161976.rar)和ndk(android-ndk-r9d-windows-x86.zip),按照"win32移植到Android"配置,最後右鍵項目->"Run As"->"Android Application",可產生apk文件,並能在模擬器上運行。
其他注意的問題:
1,導入時不要勾選"Copy projects into workspace",否則fatal error: AppDelegate.h: No such file or directory
2,創建模擬器是請勾選"Use Host GPU",否則java.lang.IllegalArgumentException: No configs match configSpec,
http://blog.csdn.net/liyong20080101/article/details/20047447
3,emulator: ERROR: Could not load OpenGLES emulation library: Could not load DLL!
拷貝以下文件從SDK\tools\lib到SDK\tools
libEGL_translator.dll
libGLES_CM_translator.dll
libGLES_V2_translator.dll
libOpenglRender.dll
詳細http://www.cnblogs.com/ericfine/archive/2012/09/03/2668388.html
4,ndk-build.cmd,系統找不到指定的路徑。文件明明存在卻找不到,是32/64位導致。
5,雖然還是出現安裝失敗,Failed to install test.apk on device 'emulator-5554!,但test能夠正常運行
cocos2d-x學習資料
★ [cocos2d-x] --- 完美解決中文亂碼 - - 博客頻道 - CSDN.NET
xml方式解決中文亂碼
★【Cocos2d-x遊戲引擎開發筆記(2)】在屏幕上渲染文字
使用轉碼方式解決中文亂碼問題;設置文字隨機顏色;幾種字體效果
使用編碼轉碼在eclipse上編譯不通過,最後將源碼文件保存成utf8解決
shahdza的cocos資料合集
詳細分析保衛蘿蔔中的邏輯及實現細節
使用schedule(schedule_selector(HelloWorld::gameLogic), 1.0);實現精靈的移動,每隔1.0秒調用一次gameLogic(float)。
根據上面2篇實現鼠標點擊/觸摸,ccTouchesBegan鼠標按下觸發,我獲取到的鼠標位置是隨機值,不可用,所以我用了ccTouchesEnded(鼠標擡起)。
★ cocos2d-x--精靈反轉效果--CCOrbitCamera
簡單示例,精靈永久翻轉:pSprite->runAction(CCRepeatForever::create(CCOrbitCamera::create(0.5f, 2.0f, 0.0f, 0.0f, 360.0f, 0.0f, 0.0f)));
旋轉:90度順時1/4圈,180度順時半圈,270度逆時1/4,360度不旋轉。要想永久旋轉用720度試試。
各種基本特效及示例代碼,適合入門
場景切換及切換時的效果,注意在2.x中使用需在類前加CC,如CCTransitionSlideInR。
文章從緩存和批次渲染2個方面對精靈做了優化
★ cocos2d-x 中,如何讓runAction函數執行完後才返回
使用CCSequence,而isDone()似乎沒反應。
使用示例:
// 精靈按軌跡移動,移動完成後執行MoveCallFunc。如果在while中執行runAction,效果不好。
CCArray *arr = CCArray::create();
int tmpx, tmpy;
while (map_->GetShortestPathPoint(&tmpx, &tmpy)) {
CCMoveTo *move = CCMoveTo::create(0.1f, ccp(tmpx * size_, tmpy * size_));
arr->addObject(move);
}
CCSequence *seq = CCSequence::create(arr);
CCSequence *s = CCSequence::create(seq, CCCallFunc::create(this, callfunc_selector(GameScene::MoveCallFunc)), NULL);
sprite->runAction(s);
簡單示例:
#include "SimpleAudioEngine.h"
using namespace CocosDenshion;
SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(""); // 預加載Resources目錄
SimpleAudioEngine::sharedEngine()->playBackgroundMusic("bg.mp3"); // 播放
在析構函數中加SimpleAudioEngine::sharedEngine()->end(); //釋放聲音資源,否則退出時有錯誤發生