您好,登錄后才能下訂單哦!
上一篇教大家了一些TileMap地圖塊設置的基本規則和注意事項
這一篇開始教大家些復雜的東西:
如何通過地圖塊的id做一些事件的判斷。
這里先解釋下圖塊的id是什么:
圖塊的id就是當你加載地圖圖片的時候通過設置圖片切塊的大小會把一張地圖圖片切成很多小塊,這些小塊會自動編成一個一維數組,從0開始,如下所示
第一步:首先解決第一個問題:如何獲取圖塊id
因為圖塊首先是畫在圖層上的,所以我們先得找到對應的圖層
- map = CCTMXTiledMap::create("maps/Test2.tmx");
- CCTMXLayer* walklay = map->layerNamed("layer0");
ok,現在walklay就是我們要判斷地圖id的圖層了,通過layer0這個圖層名字獲得了。
跟編輯器里面的標簽要對應上
好了現在得到層了,就得找對應id了。
第二步:
也很簡單,如果我們想獲取圖層5行6列的地圖塊id是多少,
- CCPoint pp = ccp(6,5);//這里第一個參數是列數,第二個是行數,特別注意
- unsigned int id = layer0->tileGIDAt(pp);
ok,現在id 就是我們得到的圖塊的索引值了。
想獲得其他圖層的其他格子上的圖塊索引值同理。
得到這個值能干什么呢??
舉例:
1、做人物行走阻擋,比如我判斷如果地圖上所有索引為5的圖塊不能行走。
2、更換圖塊,比如我設置所有格子id為5的格子不顯示。
。。。。
等等,根據不同的游戲我們可以有很多種的用途。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。