Tilemap

.Tilemaps. Tilemap

颚化符是颚化符数据的容器.这不是一个显示对象,而是保存数据 关于地图,并允许您向地图添加波浪线和波浪线图层.地图可以有一个或多个 更多tilemap层,即实际渲染切片的显示对象. Tilemap数据可以从平铺JSON文件,CSV文件或2D数组中解析.平铺是免费的 专门用于创建切片地图的软件包,可从以下网站获得: http://www.map编辑.org 从Phaser 3.50.0开始,Tilemap API现在支持以下类型的映射: 1) Orthogonal 2) Isometric 3) Hexagonal 4) Staggered 在此版本之前,只支持正交图. 3.50的另一个重大变化是Tilemap层的整合.之前,您创建了 静态或动态平铺层.然而,从3.50开始,两者的特性都被 合并了,简化了应用编程接口,所以现在只有一个 `TilemapLayer` 类. Tilemap有一些便捷的方法来获取和操作层中的切片,允许 您需要在运行时构建或修改tilemap数据. 请注意,所有Tilemaps都使用基础图块大小来计算尺寸,但是 TilemapLayer可能有自己独特的平铺大小来覆盖它. 从Phaser 3.21.0开始,如果您的tilemap包括图层组(平铺1.2.0+的一个特性),那么 将被遍历,以下属性将影响子级: -不透明度(与父级混合)和可见性(父级覆盖子级) -垂直和水平偏移 不保留分组层次结构,所有层将被展平为单个数组. 组层在Tilemap构建期间被解析,但在解析后被丢弃,因此是动态的 层不会继续受到父层的影响. 为了避免重复的图层名称,作为组图层的子图层将有其父图层 组名前加一个 `/` .例如,考虑一个名为 `ParentGroup` 的组,它带有一个 孩子叫 `Layer 1` .在Tilemap对象中, `Layer 1` 将具有该名称 `zParentGroup/Layer 1` .

Constructor

new Tilemap(scene, mapData)

Since:
  • 3.0.0
Parameters:
Name Type Description
scene Phaser.Scene 此Tilemap所属的场景.
mapData Phaser.Tilemaps.MapData 包含Tilemap数据的映射数据实例.

Members

currentLayerIndex :number

Since:
  • 3.0.0
当前选定图层数据对象的索引.
Type:
  • number

format :number

Since:
  • 3.0.0
地图数据的格式.
Type:
  • number

height :number

Since:
  • 3.0.0
地图的高度(以图块为单位).
Type:
  • number

heightInPixels :number

Since:
  • 3.0.0
基于高度*高度的地图高度(以像素为单位).
Type:
  • number

hexSideLength :number

Since:
  • 3.50.0
六边形水平边的长度. 仅用于六边形方向颚化符.
Type:
  • number

imageCollections :Array.<Phaser.Tilemaps.ImageCollection>

Since:
  • 3.0.0
从切片地图数据中解析的图像集合.
Type:

images :array

Since:
  • 3.0.0
平铺图像层的数组.
Type:
  • array

layer :Phaser.Tilemaps.LayerData

Since:
  • 3.0.0
地图中当前选定的图层数据对象.您可以使用设置此属性 setLayer支持的任何类型.
Type:

layers :Array.<Phaser.Tilemaps.LayerData>

Since:
  • 3.0.0
Tilemap图层数据的数组.
Type:

objects :Array.<Phaser.Tilemaps.ObjectLayer>

Since:
  • 3.0.0
从平铺对象层解析的对象层实例的数组.
Type:

orientation :string

Since:
  • 3.0.0
地图数据的方向(如平铺中所指定的),通常为`垂直方向`.
Type:
  • string

properties :object

Since:
  • 3.0.0
映射平铺中指定的特定属性.
Type:
  • object

renderOrder :string

Since:
  • 3.12.0
地图数据的渲染(绘制)顺序(如平铺中所指定的),通常为`右向下`. 提款顺序为: 完全的 left-down right-up left-up 这可以通过 `setRenderOrder` 方法进行更改.
Type:
  • string

scene :Phaser.Scene

Since:
  • 3.0.0
Type:

tileHeight :number

Since:
  • 3.0.0
以像素为单位的图块的基本高度.请注意,各个层可能具有不同的 瓷砖高度.
Type:
  • number

tilesets :Array.<Phaser.Tilemaps.Tileset>

Since:
  • 3.0.0
地图中使用的颚化符数组.
Type:

tileWidth :number

Since:
  • 3.0.0
以像素为单位的平铺的基本宽度.请注意,各个层可能有不同的切片 宽度.
Type:
  • number

version :number

Since:
  • 3.0.0
地图数据的版本(在平铺中指定,通常为1).
Type:
  • number

width :number

Since:
  • 3.0.0
地图的宽度(以图块为单位).
Type:
  • number

widthInPixels :number

Since:
  • 3.0.0
基于宽度*宽度的地图宽度(以像素为单位).
Type:
  • number

Methods

addTilesetImage(tilesetName, keyopt, tileWidthopt, tileHeightopt, tileMarginopt, tileSpacingopt, gidopt) → (nullable) {Phaser.Tilemaps.Tileset}

Since:
  • 3.0.0
将图像添加到地图中以用作波浪线.一个地图可以使用多个波浪线. 请注意,平铺名称可以在从平铺导出的JSON文件中找到,或者在平铺中找到 编辑.
Parameters:
Name Type Attributes Default Description
tilesetName string 地图数据中指定的波浪线的名称.
key string <optional>
相位器的钥匙.用于此波形设置的缓存图像.如果 `undefined` 或 `null` 它将查找带有与tilesetName参数匹配的键的图像.
tileWidth number <optional>
平铺图像中平铺的宽度(以像素为单位).(用在 if 引导的句子之后)不然 给定它将默认为地图的平铺宽度值,或平铺中指定的平铺宽度 JSON文件.
tileHeight number <optional>
平铺图像中平铺的高度(像素).如果 如果没有给定,它将默认为地图的平铺高度值,或者 平铺JSON文件.
tileMargin number <optional>
工作表中图块周围的边距(以像素为单位).(用在 if 引导的句子之后)不然 如果指定,它将默认为0或平铺JSON文件中指定的值.
tileSpacing number <optional>
工作表中每个图块之间的间距(像素). 如果未指定,它将默认为0或平铺JSON文件中指定的值.
gid number <optional>
0 如果向空白地图添加多个波浪线,请指定起点 这个集合将在这里使用.
Returns:
返回已创建或更新的Tileset对象,如果它 失败.
Type
Phaser.Tilemaps.Tileset

calculateFacesAt(tileX, tileY, layeropt) → (nullable) {Phaser.Tilemaps.Tilemap}

Since:
  • 3.0.0
在指定图层的给定图块坐标处计算感兴趣的面.有趣的 面在内部用于优化与瓷砖的碰撞.这种方法是最常用的 内部优化重新计算面时,只有一个瓷砖已经改变. 如果未指定图层,则使用地图当前图层.
Parameters:
Name Type Attributes Description
tileX number x坐标,以图块为单位,而不是像素.
tileY number y坐标,以平铺显示,而不是像素.
layer string | number | Phaser.Tilemaps.TilemapLayer <optional>
要使用的平铺层.如果没有给定,则使用当前层.
Returns:
返回此值,如果给定的图层无效,则返回null.
Type
Phaser.Tilemaps.Tilemap

calculateFacesWithin(tileXopt, tileYopt, widthopt, heightopt, layeropt) → (nullable) {Phaser.Tilemaps.Tilemap}

Since:
  • 3.0.0
计算矩形区域内的感兴趣的面 层.有趣的面在内部用于优化与瓷砖的碰撞.这个方法 主要用于内部. 如果未指定图层,则使用地图当前图层.
Parameters:
Name Type Attributes Description
tileX number <optional>
用作区域原点的最左边的图块索引(在图块坐标中).
tileY number <optional>
用作区域原点的最上面的图块索引(在图块坐标中).
width number <optional>
该区域距离 `tileX` 索引有多宽.
height number <optional>
从 `tileY` 索引开始,该区域将有多少个瓷砖高.
layer string | number | Phaser.Tilemaps.TilemapLayer <optional>
要使用的平铺层.如果没有给定,则使用当前层.
Returns:
返回此值,如果给定的图层无效,则返回null.
Type
Phaser.Tilemaps.Tilemap

copy(srcTileX, srcTileY, width, height, destTileX, destTileY, recalculateFacesopt, layeropt) → (nullable) {Phaser.Tilemaps.Tilemap}

Since:
  • 3.0.0
将源矩形区域中的切片复制到新的目标(都在切片中指定 坐标).这会复制所有图块属性并重新计算碰撞 目标区域中的信息. 如果没有指定图层,则使用地图的当前图层.这不能应用于静态玩家.
Parameters:
Name Type Attributes Default Description
srcTileX number 要复制的区域的x坐标,以图块为单位,而不是像素.
srcTileY number 要复制的区域的y坐标,以图块为单位,而不是像素.
width number 要复制的区域的宽度,以平铺显示,而不是以像素显示.
height number 要复制的区域的高度,以平铺显示,而不是像素.
destTileX number 要复制到的区域的x坐标,单位为切片,而不是像素.
destTileY number 要复制到的区域的y坐标,单位为切片,而不是像素.
recalculateFaces boolean <optional>
true `true` 如果应该重新计算人脸数据.
layer string | number | Phaser.Tilemaps.TilemapLayer <optional>
要使用的平铺层.如果没有给定,则使用当前层.
Returns:
返回此值,如果给定的图层无效,则返回null.
Type
Phaser.Tilemaps.Tilemap

createBlankLayer(name, tileset, xopt, yopt, widthopt, heightopt, tileWidthopt, tileHeightopt) → (nullable) {Phaser.Tilemaps.TilemapLayer}

Since:
  • 3.0.0
创建一个新的空平铺层.地图中当前选定的图层将被设置为该新图层. 在v3.50.0之前,这种方法被称为 `createBlankDynamicLayer` .
Parameters:
Name Type Attributes Default Description
name string 该层的名称.在地图中必须是唯一的.
tileset string | Array.<string> | Phaser.Tilemaps.Tileset | Array.<Phaser.Tilemaps.Tileset> 用于渲染此层的波浪线或波浪线数组.可以是字符串或Tileset对象.
x number <optional>
0 该层左上角将被放置的世界x位置.
y number <optional>
0 该层左上角将被放置的世界y位置.
width number <optional>
平铺层的宽度.如果未指定,它将默认为地图的宽度.
height number <optional>
平铺层的高度.如果未指定,它将默认为地图的高度.
tileWidth number <optional>
该层用于计算的切片宽度.如果未指定,它将默认为地图的波浪宽度.
tileHeight number <optional>
该层用于计算的切片高度.如果未指定,它将默认为地图的平铺高度.
Returns:
返回新创建的图层,如果失败,则返回 `null` .
Type
Phaser.Tilemaps.TilemapLayer

createFromObjects(objectLayerName, config) → {Array.<Phaser.GameObjects.GameObject>}

Since:
  • 3.0.0
此方法将遍历平铺对象层中定义的所有对象,然后 将匹配结果转换成相位器游戏对象(默认为精灵) 对象符合三个标准之一:对象标识,对象标识号或对象名称. 在切片中,每个对象的对象标识都是唯一的.然而,对象标识号是由所有对象共享的 使用相同的图像.最后,对象名是字符串,同一个名称可以用于多个 平铺的对象,它们不必是唯一的. 根据您希望的标准类型,相应地设置配置参数 与之匹敌.例如,要转换 `gid` 为26的对象图层上的所有项目: ```javascript createFromObjects(layerName, { gid: 26 }); ``` 或者,要转换名为 `bonus` 的对象: ```javascript createFromObjects(layerName, { name: 'bonus' }); ``` 或者,要转换具有特定id的对象: ```javascript createFromObjects(layerName, { id: 9 }); ``` 您应该只指定 `id` , `gid` , `name` ,或者不指定它们.不要添加超过 配置的一个标准.如果没有指定任何条件,则 将转换对象层. 默认情况下,此方法会将对象转换为 `Sprite` 实例,但您可以覆盖 这通过提供您自己的类类型来实现: ```javascript createFromObjects(layerName, { gid: 26, classType: Coin }); ``` 这将把gid为26的所有对象转换成您自定义的 `Coin` 类.你可以通过 这里的任何类类型,但是它必须扩展 `Phaser.GameObjectS.GameObject` 作为它的基类. 您的类将总是被传递一个参数: `scene` ,它是对场景 在配置对象中指定,如果没有给定,则在此Tilemap所属的场景中指定. 对象的所有属性都被复制到游戏对象中,所以你可以简单地使用它 在地图编辑器中配置属性的方法.例如给一个对象一个 平铺中的属性 `alpha: 0.5` 将反映在创建的游戏对象中. 不作为游戏对象属性存在的自定义对象属性在 游戏对象data store. 您可以在配置中使用set `container` 属性.如果给定,该类将被添加到 容器实例而