2012-03-14 92 views
1

好吧,讓我們說我有一個瓦片地圖,看起來像這樣:變化瓷磚顏色

enter image description here

當用戶觸摸右邊的藍色部分(我處理的座標和所有)我怎樣才能讓藍色部分變成不同的顏色(一組不同的瓷磚,讓我們說綠色的瓷磚,我創造了一些綠色瓷磚)?

+1

答案您可以添加一些代碼到你是如何加載/繪圖您的瓷磚?你在使用TileRenderer嗎?你使用SpriteCache來繪製? – 2012-03-14 18:30:22

+0

與此處的代碼相同:http://code.google.com/p/libgdx/source/browse/trunk/tests/gdx-tests/src/com/badlogic/gdx/tests/TiledMapTest.java – user461316 2012-03-14 19:50:00

回答

0

由於TileRenderer在內部使用SpriteCache,所以無法在加載後用於渲染特定圖塊的紋理。但是,您可以在地圖中使用多個圖層,並使用render(camera,layer[])有條件地在紅色/藍色圖塊頂部呈現綠色圖塊。如果綠色瓷磚沒有完全覆蓋藍色瓷磚,那麼您將不得不爲藍色,綠色和紅色瓷磚分別設置不同的圖層,並在綠色瓷磚頂部有條件地呈現綠色或藍色瓷磚。請記住,瓷磚地圖不適用於大型的動畫,更適合靜態地形。

-1

[編輯]正下方的評論

OrthogonalTiledMapRenderer orthogonalTiledMapRenderer = new OrthogonalTiledMapRenderer(map, 1/tileSize); 

orthogonalTiledMapRenderer.getSpriteBatch().setColor(/*wished color*/); 
+2

請問您可以正確地格式化你的答案並添加定性解釋? – tttthomasssss 2014-09-19 18:10:16

+1

請爲此解釋原因。在這裏通常不鼓勵代碼傾銷而不解釋。 – rayryeng 2014-09-19 18:14:27

+0

我想發佈這個地方。我可以在這裏提出的最佳解決方案是在某個位置更換各個瓷磚。在我的遊戲中,我自己使用這個來改變玩家站在其上的瓦片的外觀。瓷磚和它的身體在一段時間後被移除。 TiledMapTileLayer tiledMapTileLayer =(TiledMapTileLayer)map.getLayers()。get(「background」);然後當你需要它時,你改變位置x,y上的貼圖的紋理:tiledMapTileLayer.getCell(x,y).setTile(new StaticTiledMapTile(TextureRegion textureRegion)); – mtosch 2014-09-21 18:52:05