添加對(duì)象層 這里就會(huì)出現(xiàn)一個(gè)新的對(duì)象..."/>
您好,登錄后才能下訂單哦!
之前三篇地圖主要講的都是地圖繪制有關(guān)的部分,這一篇就講一講如果添加對(duì)象層,以及如何處理對(duì)象層的信息
我們點(diǎn)擊 圖層->添加對(duì)象層
這里就會(huì)出現(xiàn)一個(gè)新的對(duì)象層,區(qū)別于圖層,用紫色標(biāo)記
同樣的,我們更改下名字,變?yōu)?ldquo;object0”
光加了層沒(méi)用,我們還得在層上標(biāo)記具體的對(duì)象
下面我們把光標(biāo)點(diǎn)中“object0”對(duì)象層
我們可以看見(jiàn)工具欄有了變化
前面與圖層有關(guān)的按鈕變?yōu)榱嘶疑?,后面與對(duì)象層有關(guān)的按鈕變亮了
點(diǎn)擊 “插入對(duì)象”
按鈕
然后我們用鼠標(biāo)在地圖上拖出一個(gè)框來(lái),格子數(shù)多少可以自由決定
,不過(guò)一般我們就使用一格就好了,
按住右下角的小正方形可以拖拉改變格子的大小
下面我們給對(duì)象添加屬性
右鍵點(diǎn)擊對(duì)象,彈出下框
點(diǎn)擊對(duì)象屬性
這里上面第一排的名稱(chēng)是方便在編輯器查看用的,因此最上面的“名稱(chēng)”和類(lèi)型處不填也可以。
下面我們加一個(gè)新的屬性,命名為playerBorn吧,表示游戲人物主角的出生地
值可以指定為1,下面再定義個(gè)Hp的屬性,值寫(xiě)個(gè)100,表示主角出生血量為100
確定保存,之后加入到我們的游戲工程目錄下
第二步:讀取屬性信息
- CCTMXObjectGroup* group = map->objectGroupName("object0");//第一步,獲取對(duì)象層
- CCArray* objects = group->getObjects();//獲取層上對(duì)象集合
- CCDictionary* dict = NULL;
- CCObject* pObj = NULL;
- CCARRAY_FOREACH(objects, pObj)//遍歷對(duì)象集合中的對(duì)象
- {
- dict = (CCDictionary*)pObj;//
- if(!dict)
- break;
- const char* key = "playerBorn";//設(shè)定關(guān)鍵字,對(duì)應(yīng)我們的"playerBorn"
- CCString *str = (CCString*)dict->objectForKey(key);
- if(str)
- {
- key = "x";
- float x = ((CCString*)dict->objectForKey(key))->floatValue();//獲取對(duì)應(yīng)對(duì)象的x坐標(biāo)
- key = "y";
- float y = ((CCString*)dict->objectForKey(key))->floatValue();//獲取對(duì)應(yīng)對(duì)象的y坐標(biāo)
- player->setPosition(ccp(x,y));//這里player是我們的主角sprite對(duì)象,設(shè)置坐標(biāo)位置
- key = "hp";
- int Hp = ((CCString*)dict->objectForKey(key))->intValue();//獲得主角血量100
- player->setHp(Hp);
- break;//找到過(guò)后,退出循環(huán)
- }
- }
這里有個(gè)地方大家要注意,在編輯器上,我們的x,y屬性中的值是格子數(shù),
比如
這里,x是15,y是16,表示的是這個(gè)對(duì)象在地圖的16行15列的格子上,
但是在cocos2d-x中用讀取出來(lái)的就不是15,16了,而是自動(dòng)乘過(guò)塊大小后在地圖上的像素值了,所以這就是為什么我設(shè)置主角setPosition的時(shí)候,直接用的轉(zhuǎn)換后的,xy值,而沒(méi)有再用他們?nèi)コ艘詔ile塊的寬高的原因
基本使用就是這樣了,下一篇教大家如何處理斜45度角的地圖。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。