cocos2d-x原型cocos2d,基於cocos2d-iphone,跨平台。
hello workd分析:
1、「resource」目錄
該目錄主要用於存放遊戲中須要的、音訊和配置等資源檔案。可在當中建立子目錄。
「resource」目錄能夠為預設遊戲執行時目錄。
2、「include」和「source」目錄
這兩個目錄用於放置遊戲標頭檔案和原始碼檔案。專案模板中加入的main.h、main.cpp、resource.h是平台相關的。為windows專有。
// initialize director啟動應用程式後將呼叫這種方法。預設的實現中已經包括了遊戲啟動後的必要準備
ccdirector* pdirector = ccdirector::shareddirector();//初始化遊戲引擎控制器ccdirector。以便啟動遊戲引擎
cceglview* peglview = cceglview::sharedopenglview();
pdirector->setopenglview(peglview);
// turn on display fps啟用fps顯示
pdirector->setdisplaystats(true);
// set fps. the default value is 1.0/60 if you don't call this設定畫圖間隔。人眼的重新整理頻率為1/60秒。
pdirector->setanimationinterval(1.0 / 60);
// create a scene. it's an autorelease object建立乙個場景
ccscene *pscene = helloworld::scene();
// run執行場景
pdirector->runwithscene(pscene);
return true;
}在第乙個函式中能夠加入pdirector->enableretinadisplay(true)用於開啟高解析度螢幕。
在helloworldscene.h與helloworldscene.cpp中定義了helloworld專案中預設的遊戲場景。cocos的遊戲結構能夠簡單的概括為場景、層、精靈。helloworld類繼承於cclayer,因此helloworld本身是乙個層,helloworld類包括乙個靜態函式和兩個例項方法。
以下介紹一下:
(1)static cocos2d::ccscene* scene();是cclayer的乙個子類。能夠在子類中加入各種精靈和邏輯處理**。
ccscene* helloworld::scene()
(2)bool init()初始化helloworld類
bool helloworld::init()
ccsize visiblesize = ccdirector::shareddirector()->getvisiblesize();//
ccpoint origin = ccdirector::shareddirector()->getvisibleorigin();//
/// 2. add a menu item with "x" image, which is clicked to quit the program
// you may modify it.
//建立選單並加入到層
// add a "close" icon to exit the progress. it's an autorelease object
ccmenuitemimage *pcloseitem = ccmenuitemimage::create(
"closenormal.png",
"closeselected.png",
this,
menu_selector(helloworld::menuclosecallback));
//設定關閉button位置
pcloseitem->setposition(ccp(origin.x + visiblesize.width - pcloseitem->getcontentsize().width/2 ,
origin.y + pcloseitem->getcontentsize().height/2));
// create menu, it's an autorelease object
ccmenu* pmenu = ccmenu::create(pcloseitem, null);
pmenu->setposition(ccpointzero);
this->addchild(pmenu, 1);
/// 3. add your codes below...
//建立「hello world」標籤並加入到層中
// add a label shows "hello world"
// create and initialize a label
cclabelttf* plabel = cclabelttf::create("yu xikuo", "arial", 24);//建立的是yuxikuo的標籤
// position the label on the center of the screen設定標籤的位置
plabel->setposition(ccp(origin.x + visiblesize.width/2,
origin.y + visiblesize.height - plabel->getcontentsize().height));
// add the label as a child to this layer建立的label到層中
this->addchild(plabel, 1);
// add "helloworld" splash screen"加入helloworld.png精靈到層中
ccsprite* psprite = ccsprite::create("helloworld.png");
// position the sprite on the center of the screen設定精靈在層中的位置
psprite->setposition(ccp(visiblesize.width/2 + origin.x, visiblesize.height/2 + origin.y));
// add the sprite as a child to this layer
this->addchild(psprite, 0);將精靈加入到層
return true;
}
Cocos2d x學習筆記1
1.建立新的cocos2d x 3.0 專案 在命令列中輸入 cocos new helloworld 專案名稱 p com.ss.pku 包名字 l cpp 專案型別 d d cocos workspace 專案存放路徑 2.資料夾分析 resource 資料夾 存放資源檔案 include和so...
Cocos2d x學習筆記(7)
1 動作基本概念 ccactiong是動作類的基類,動作作用於ccnode,因此,任何乙個動作都需要ccnode物件來執行。ccaction作為乙個基類,其實質是乙個介面 抽象類 由它派生的實現類才是實際使用的動作。ccaction的絕大多數實現類都派生自ccfinitetimeaction,這個類...
Cocos2d x動作學習筆記
action類如其名,它可以改變node物件的屬性,action物件是隨著時間改變node的屬性。任何乙個以node為基類的物件都有可執行的動作物件。例如,你可以在乙個時間段內將sprite精靈從乙個位置移動到另乙個位置。每個動作都有by和to兩個狀態。為什麼呢?因為它們所執行的結果是不同的。by相...