什么是平铺地图以及如何声明
what is a tiled map and how it is declared
我最近在搜索游戏编程,我通过了一个名为Tiled Map的定义。我查找了它,试图了解它是如何声明的,以及它是如何用于查找冲突的,但没有成功,任何人都不能给我一个清楚的解释,说明什么是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]
];
Wikipedia将瓦片映射(也称为瓦片集)定义为:
瓦片集(有时称为精灵表)是称为瓦片(通常大小一致)的较小图像的集合,这些图像已组合成单个较大的图像。平铺集通常用于2D视频游戏中,用于从集内可重复使用的平铺创建复杂的地图。当显示基于瓦片集的地图时,存储在其中的瓦片用于重新组合地图以进行显示。
平铺贴图是通过将游戏划分为正方形网格来创建的。然后,每个单元格都可以填充一个由更小、均匀的图像组成的图像中的"瓦片"(例如文章中提供的马里奥图像)。然后,使用2D阵列(有时是单个阵列)来存储数字列表,每个数字对应于图像中的特定瓦片。使用数组非常好,因为它可以跟踪单元格的行和列。在您的示例中,数字0通常对应于一个空瓦片(主要是因为它可以更容易地检查碰撞),而数字8则对应于较大图像的某些部分,可能是云或砖块。
制作基于瓦片的游戏时,通常会创建一个或多个数组来保存地图的瓦片信息,另一个数组则保存冲突发生地的信息。当您检查冲突时,您只需通过检查数字的存在来检查用户试图输入的单元格是否为空。例如:
function checkCollision(userRow, userCol) {
if (collisionMap[userRow][userCol]) {
// cell is not empty, handle collision
}
else {
// cell is empty, carry on
}
}
你可以从我写的这篇文章中阅读另一个关于瓦片映射的资源。
使用Tiled创建地图的设计过程的核心是遵循以下步骤:选择地图大小和基本平铺大小。添加图像中的瓷砖集。将波浪形符号放在地图上。添加任何其他对象来表示抽象的东西。将映射另存为tmx文件。导入tmx文件并为您的游戏解释它。
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 直接在函数声明上使用function.prototype.bind
- 获取HTML属性中CSS声明的值
- 对API数据使用声明性绑定
- 可以Resharper在我的javascript函数声明中添加分号
- 如何为排除无穷大和NaN的数字声明Flow类型
- 此行是否包含函数声明
- Javascript以不同的方式声明数字
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 使用同一对象中的其他变量声明变量
- 如何在AngularJS工厂中正确声明对象属性
- 用||声明变量
- 其中的用例标签'的声明
- 如何将变量声明为全局变量
- 调用函数中声明的变量
- 一个'var'在函数内部声明
- 我应该如何声明我的自调用函数
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- 函数声明与函数表达式之间的性能差异
- 什么是声明性环境记录,它与激活对象有何不同