2013-08-05 64 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文件并将其解释为您的游戏。

相关问题