此文的cocos2d版是由泰然論壇的子龍山人翻譯..深表感謝..這裡是他們的鏈結
這是英文版鏈結
1)由於本人實在是懶得離譜,所以從啟動xcode 到成功執行 helloworld 俺就不寫了..跟文章中cocos2d的建立方式一樣
2)刪除helloworld.h和.cpp檔案 也是一樣的.但是建立 「scenemanager」的時候要注意,建立的副檔名是.h和.cpp
小貼士:一定要選對路徑!!都扔classes底下,不然xcode讓你include了,也總是提示「木有找到檔案」!!切記!
3)修改scenemanager.h和 scenemanager.cpp裡的內容
scenemanager.h
#ifndef menu_test_part1_scenemanager_h
#define menu_test_part1_scenemanager_h
#include "cocos2d.h"
#include "menulayer.h"
using namespace cocos2d;
class scenemanager:public ccobject
;#endif
scenemanager.cpp
#include #include "scenemanager.h"
#include "cocos2d.h"
using namespace cocos2d;
void scenemanager::gomenu()
void scenemanager::go(cclayer* layer)
else
}ccscene* scenemanager::wrap(cclayer* layer)
你可能已經注意到了,我們包含了「menulayer.h」檔案,然後在「gomenu」方法中使用了
menulayer。所以,讓我們再建立乙個類,叫 menulayer.h以及它的實現 menulayer.cpp
menulayer.h如下
#ifndef menu_test_part1_menulayer_h
#define menu_test_part1_menulayer_h
#include "cocos2d.h"
using namespace cocos2d;
class menulayer:public cclayer
;#endif
menulayer.cpp 如下
#include #include "cocos2d.h"
#include "menulayer.h"
#include "scenemanager.h"
using namespace cocos2d;
bool menulayer::init()
cclabelttf* titleleft=cclabelttf::labelwithstring("menu", "marker felt", 48); //建立label
cclabelttf* titleright=cclabelttf::labelwithstring("system", "marker felt", 48);
cclabelttf* titlequotes=cclabelttf::labelwithstring("\" ", "marker felt", 48);
cclabelttf* titlecentertop=cclabelttf::labelwithstring("how to build a...", "marker felt", 26);
cclabelttf* titlecenterbottom=cclabelttf::labelwithstring("part 1", "marker felt", 48);
ccmenuitemfont* startnew=ccmenuitemfont::itemfromstring("new game", this, menu_selector(menulayer::onnewgame)); //建立字元型按鈕,注意 menu_selector裡面的寫法!!! 類名::函式名!!!
ccmenuitemfont* credits=ccmenuitemfont::itemfromstring("credits", this, menu_selector(menulayer::oncredites));
ccmenu* menu=ccmenu::menuwithitems(startnew,credits,null);
//將兩個按鈕兒子新增到乙個menu爹上,大頭兒子小頭爸爸不分手
//注意menuwithitem的單複數!!英文是不一樣滴,還有千萬別忘了null
//-----------樓下開始大規模setposition了-----------
titlecentertop->setposition(ccp(160,380));
this->addchild(titlecentertop);
titlecenterbottom->setposition(ccp(160,300));
this->addchild(titlecenterbottom);
titlequotes->setposition(ccp(160,345));
this->addchild(titlequotes);
titleleft->setposition(ccp(80,345));
this->addchild(titleleft);
titleright->setposition(ccp(220,345));
this->addchild(titleright);
menu->setposition(ccp(160,200));
menu->alignitemsverticallywithpadding(40.0f);
//上面這句貌似是讓menu中心對齊
this->addchild(menu);
//總結,以上這些全是 menulayer的node兒子!!!
//這之後,所有的的兒子都加到爹身上了,當執行這個menulayer之後,兒子們就可以按位置顯示了。
//-----------setposition end-------------------------
return true;
}void menulayer::onnewgame(cocos2d::ccobject *psender)
void menulayer::oncredites(cocos2d::ccobject *psender)
//答疑:上面這兩個函式目前的主要功能是點了以後都是gomenu...也就是沒反應,今後的教程,會進一步的新增對應的功能哦
最後,修改
標頭檔案: 把
#include "helloworld.h"
修改為#include "scenemanager.h"
當然,我們還需要修改一些內容。因為所有的「runwithscene」邏輯,現在都被
scenemanager
類所替代,因此,把下面的語句:
ccscene *pscene = helloworld::scene();
這句話不需要了,刪掉,再見吧!!
然後把下面這句,
// run
pdirector->runwithscene(pscene);
替換稱scenemanager::gomenu();
好了!!大功告成了!!編譯執行看看吧!
額..螢幕是橫屏的 所以現在修改
這之中有一句話是,
// sets landscape mode
// pdirector->setdeviceorientation(kccdeviceorientationlandscapeleft);
把第二句的注釋符去掉。然後再編譯執行
額....螢幕反了....大家自己調整 括號裡面的引數給調正吧...
中找到去掉左下角fps顯示的方法..
第一部分就是這些,大家果斷拍磚哦
Cocos2dx 基本內功第一部 基本資料結構
cocos2dx封裝了一些常用的資料結構,我們分為兩個部分介紹。一部分是對基本資料型別,int float double bool的裝箱。一部分是比較複雜的復合資料結構 string array dictionary size rect point 這些資料結構大多數是用c 方式重寫了oc語言中fo...
VBS程式設計教程第一部
發現大部分黑白的朋友都不會程式設計,這可不是件好事,所以這次我就寫了乙個簡單的程式設計教程,講一下vbscript.主要面向菜鳥,懂得程式設計的朋友就不要浪費時間了,如果你想接觸以下vbscript也可以,但既然有程式設計基礎推薦直接去找一些參考書來讀,會比較快.什麼是vbscript呢?vbscr...
cocos2d x學習筆記一選單
恢復內容開始 前沿 cocos2dx誇平台引擎算是越來也受寵了,網遊雖然用這個引擎次了點,但是輕量級的休閒遊戲還是比較靈活的。封裝的動作,選單,場景切換,例子特效等。網上很多教程都是基於1.0的,現在 必須基於1.0跑,所以在這裡筆者從2.0.3開始寫,保證大家能順利執行出來。結構圖如下 ccmen...