Cocos2d x學習筆記(1)

2021-09-07 00:19:05 字數 3285 閱讀 1467

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相...