0

我最近在搜索游戏编程,我通过了 throw 一个名为 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]
  ];
4

2 回答 2

1

维基百科将瓦片地图(也称为瓦片集)定义为:

瓦片集(有时称为精灵表)是称为瓦片(通常具有统一大小)的较小图像的集合,这些图像已组合成单个较大的图像。瓷砖集通常用于 2D 视频游戏,以从集中的可重复使用的瓷砖创建复杂的地图。当显示基于瓦片集的地图时,存储在其中的瓦片用于重新组合地图以进行显示。

平铺地图是通过将游戏划分为正方形网格来创建的。然后,每个单元格都可以用由较小的统一图像(例如文章中提供的马里奥图像)组成的图像中的“图块”填充。之后,使用 2D 数组(或有时是单个数组)来存储数字列表,每个数字对应于图像中的特定图块。使用数组非常棒,因为它可以跟踪单元格的行和列。在您的示例中,数字 0 通常对应于空图块(主要是因为它使检查碰撞更容易),而数字 8 对应于较大图像的某些部分,可能是云或砖块。

在制作基于图块的游戏时,您通常会创建一个或多个数组来保存地图的图块信息,并创建另一个数组来保存有关碰撞发生位置的信息。当您检查冲突时,您只需通过检查数字是否存在来检查用户尝试输入的单元格是否为空。如:

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

你可以从我写的这篇文章中阅读关于瓦片地图的另一个资源。

于 2013-08-05T07:23:16.607 回答
0

Tiled 是一个通用的瓦片地图编辑器。它作为一个免费工具,可以轻松创建地图布局。它足够通用,可以指定更抽象的事物,例如碰撞区域、敌人生成位置或加电位置。它以方便、标准化的 tmx 格式保存所有这些数据。

使用 Tiled 创建地图的设计过程的核心是按照以下步骤进行: 选择地图大小和基本图块大小。从图像添加图块集。将图块集放在地图上。添加任何其他对象来表示抽象的东西。将地图另存为 tmx 文件。导入 tmx 文件并为您的游戏解释它。

于 2013-08-05T07:15:30.220 回答