TileMap用法二

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

這裏先解釋下圖塊的id是什麼:

圖塊的id就是當你加載地圖圖片的時候通過設置圖片切塊的大小會把一張地圖圖片切成很多小塊,這些小塊會自動編成一個一維數組,從0開始,如下所示

\

第一步:首先解決第一個問題:如何獲取圖塊id

因爲圖塊首先是畫在圖層上的,所以我們先得找到對應的圖層


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


 

ok,現在walklay就是我們要判斷地圖id的圖層了,通過layer0這個圖層名字獲得了。

跟編輯器裏面的標籤要對應上

\

好了現在得到層了,就得找對應id了。

第二步:

也很簡單,如果我們想獲取圖層5行6列的地圖塊id是多少,www.it165.net


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


 

ok,現在id 就是我們得到的圖塊的索引值了。

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

得到這個值能幹什麼呢??

舉例:

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

2、更換圖塊,比如我設置所有格子id爲5的格子不顯示。

。。。。

等等,根據不同的遊戲我們可以有很多種的用途。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章