您好,登錄后才能下訂單哦!
上一篇教大家了一些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)始,如下所示
第一步:首先解決第一個(gè)問(wèn)題:如何獲取圖塊id
因?yàn)閳D塊首先是畫(huà)在圖層上的,所以我們先得找到對(duì)應(yīng)的圖層
- map = CCTMXTiledMap::create("maps/Test2.tmx");
- CCTMXLayer* walklay = map->layerNamed("layer0");
ok,現(xiàn)在walklay就是我們要判斷地圖id的圖層了,通過(guò)layer0這個(gè)圖層名字獲得了。
跟編輯器里面的標(biāo)簽要對(duì)應(yīng)上
好了現(xiàn)在得到層了,就得找對(duì)應(yīng)id了。
第二步:
也很簡(jiǎn)單,如果我們想獲取圖層5行6列的地圖塊id是多少,
- CCPoint pp = ccp(6,5);//這里第一個(gè)參數(shù)是列數(shù),第二個(gè)是行數(shù),特別注意
- unsigned int id = layer0->tileGIDAt(pp);
ok,現(xiàn)在id 就是我們得到的圖塊的索引值了。
想獲得其他圖層的其他格子上的圖塊索引值同理。
得到這個(gè)值能干什么呢??
舉例:
1、做人物行走阻擋,比如我判斷如果地圖上所有索引為5的圖塊不能行走。
2、更換圖塊,比如我設(shè)置所有格子id為5的格子不顯示。
。。。。
等等,根據(jù)不同的游戲我們可以有很多種的用途。
免責(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)容。