溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

手把手教你在cocos2d-x中使用TileMap地圖編輯器(三)

發(fā)布時(shí)間:2020-06-22 04:33:14 來(lái)源:網(wǎng)絡(luò) 閱讀:2394 作者:lovegame911 欄目:游戲開(kāi)發(fā)

上一篇教大家了一些TileMap地圖塊設(shè)置的基本規(guī)則和注意事項(xiàng)

這一篇開(kāi)始教大家些復(fù)雜的東西:

如何通過(guò)地圖塊的id做一些事件的判斷。

這里先解釋下圖塊的id是什么:

圖塊的id就是當(dāng)你加載地圖圖片的時(shí)候通過(guò)設(shè)置圖片切塊的大小會(huì)把一張地圖圖片切成很多小塊,這些小塊會(huì)自動(dòng)編成一個(gè)一維數(shù)組,從0開(kāi)始,如下所示

手把手教你在cocos2d-x中使用TileMap地圖編輯器(三)

第一步:首先解決第一個(gè)問(wèn)題:如何獲取圖塊id

因?yàn)閳D塊首先是畫(huà)在圖層上的,所以我們先得找到對(duì)應(yīng)的圖層

 

  1. map = CCTMXTiledMap::create("maps/Test2.tmx");  
  2. CCTMXLayer* walklay = map->layerNamed("layer0");  

ok,現(xiàn)在walklay就是我們要判斷地圖id的圖層了,通過(guò)layer0這個(gè)圖層名字獲得了。

跟編輯器里面的標(biāo)簽要對(duì)應(yīng)上

手把手教你在cocos2d-x中使用TileMap地圖編輯器(三) 

好了現(xiàn)在得到層了,就得找對(duì)應(yīng)id了。

第二步:

也很簡(jiǎn)單,如果我們想獲取圖層5行6列的地圖塊id是多少,

  1. CCPoint pp = ccp(6,5);//這里第一個(gè)參數(shù)是列數(shù),第二個(gè)是行數(shù),特別注意  
  2. unsigned int id = layer0->tileGIDAt(pp); 

ok,現(xiàn)在id 就是我們得到的圖塊的索引值了。

想獲得其他圖層的其他格子上的圖塊索引值同理。

得到這個(gè)值能干什么呢??

舉例:

1、做人物行走阻擋,比如我判斷如果地圖上所有索引為5的圖塊不能行走。

2、更換圖塊,比如我設(shè)置所有格子id為5的格子不顯示。

。。。。

等等,根據(jù)不同的游戲我們可以有很多種的用途。

 

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI