2013-08-05 67 views
0

我最近在尋找遊戲編程,並且通過拋出了一個名爲Tiled Map的定義我查找了它並嘗試瞭解它如何聲明以及如何使用它來查找碰撞,但是沒有成功任何一個可以給我什麼是平鋪的地圖明確的解釋,並聲明它,我怎麼能在這個地圖檢測衝突,這是網站,我讀:什麼是平鋪地圖以及它是如何聲明的

http://rodrigo-silveira.com/html5-2d-game-programming-tutorial-gwt/#.Uf9Ivm22shC 

var mapBluePrint = [ 
    [0, 0, 0, 0, 0, 0], 
    [0, 8, 8, 8, 8, 0], 
    [0, 0, 0, 0, 0, 0] 
    ]; 

回答

1

Wikipedia限定元件地圖(也稱爲瓦片集)爲:

瓷磚組(有時稱爲子畫面片)是較小的圖像稱爲塊(通常均勻的尺寸的),其已收集組合成一個更大的圖像。瓷磚組通常用於2D視頻遊戲,以便從集合中的可重用瓷磚創建複雜的地圖。當顯示基於瓦片集的地圖時,存儲在其中的瓦片用於重新組裝地圖以進行顯示。

磁磚映射是通過將在遊戲成正方形的柵格建立。然後,每個單元格可以由包含更小,統一圖像(例如文章中提供的Mario圖像)的圖像填充「圖塊」。之後,二維數組(或有時是單個數組)用於存儲數字列表,每個數字對應於圖像中特定的圖塊。使用數組非常棒,因爲它可以跟蹤單元格的行和列。在你的例子中,數字0通常對應一個空的圖塊(主要是因爲它使得檢查碰撞更容易),而數字8將對應於較大圖像的某個部分,可能是雲或磚。

製作基於瓦片的遊戲時,通常會創建一個或多個保存地圖貼圖信息的陣列,以及另一個陣列,其中包含有關發生碰撞的位置的信息。當您檢查碰撞時,您只需檢查用戶試圖輸入的單元格是否爲空,方法是檢查數字是否存在。如:

function checkCollision(userRow, userCol) { 
    if (collisionMap[userRow][userCol]) { 
     // cell is not empty, handle collision 
    } 
    else { 
     // cell is empty, carry on 
    } 
} 

你可以閱讀從這個article我寫的這片地圖的另一個資源。

+0

所以我明白瓷磚地圖是什麼,但爲什麼他使用6 * 3陣列,爲什麼他使用數字8,而不是另一個數字,如7或5爲什麼例如? – Sora

+0

從我可以告訴它只是一個任意的例子來說明他的觀點。 –

+0

所以如果我把這個精靈表繪製在我的畫布中:http://rodrigo-silveira.com/wp-content/uploads/2012/06/mario-8-bit-sprites.png我應該用它代表它像這個例子中的13 * 13數組http://blog.sklambert.com/create-a-canvas-tileset-background/:他拿着他的精靈表,並用數字組成一個數組,以便在稍後的畫布中繪製它 – Sora

0

瓷磚是一般目的瓷磚地圖編輯器。它作爲一個免費的工具,可以輕鬆創建地圖佈局。它具有通用性,可以指定更多的抽象事物,例如碰撞區域,敵方重生位置或啓動位置。它將所有這些數據保存在一個方便,標準化的tmx格式中。

其核心是使用Tiled創建地圖的設計過程按照以下步驟進行: 選擇您的地圖大小和基本圖塊大小。 從圖像添加圖集。 將地圖放置在地圖上。 添加任何其他對象來表示抽象的東西。 將地圖保存爲tmx文件。 導入tmx文件並將其解釋爲您的遊戲。

相關問題