切片地图阅读器#

arcade.tilemap.TileMap#

class arcade.tilemap.TileMap(map_file: Union[str, pathlib.Path] = '', scaling: float = 1.0, layer_options: Optional[Dict[str, Dict[str, Any]]] = None, use_spatial_hash: Optional[bool] = None, hit_box_algorithm: str = 'Simple', hit_box_detail: float = 4.5, tiled_map: Optional[pytiled_parser.tiled_map.TiledMap] = None, offset: pyglet.math.Vec2 = Vec2(0, 0))[源代码]#

类的新实例,该类表示从平铺中完全分析和加载的映射。有关如何使用此类的示例,请参阅:https://api.arcade.academy/en/latest/examples/platform_tutorial/step_09.html

参数
  • map_file (Union[str, Path]) -- 用于初始化切片地图的JSON Mapfile

  • scaling (float) -- 全局缩放以应用于所有精灵。

  • layer_options (Dict[str, Dict[str, Any]]) -- 每一层的额外参数。

  • use_spatial_hash (Optional[bool]) -- 如果设置为True,这将使在SpriteList中移动精灵的速度变慢,但它将加快与SpriteList中的项的碰撞检测。非常适合使用静态墙/平台进行碰撞检测。

  • hit_box_algorithm (str) -- ‘None’、‘Simple’或‘Detail’之一。

  • hit_box_detail (float) -- 浮动,默认为4.5。与‘Detailed’连用,表示命中框。

  • tiled_map (pytiled_parser.TiledMap) -- 已解析的拼贴解析器映射对象。通过这一点意味着 map_file 参数将被忽略,而将改用预先解析的映射。这对于处理平铺世界文件很有帮助。

  • offset (pyglet.math.Vec2) -- 可用于偏移地图中所有精灵和对象的位置。这将应用于平铺的任何偏移之外。可以使用LAYER_OPTIONS DICT覆盖此值。

这个 layer_options 参数可用于指定每个层的参数。

此操作的可用选项包括:

USE_SPATIAL_HASH-一个布尔值,用于在该层的SpriteList上启用空间散列。Scaling-提供特定于层的精灵缩放的浮点。HIT_BOX_ALGORM-用于该层中的精灵的Hit Box算法的字符串。HIT_BOX_DETAIL-为每个精灵的Hitbox偏移指定细节级别的浮点-包含层CUSTOM_CLASS的X和Y位置偏移的元组-层中的所有对象都是从该类而不是精灵创建的。必须是Sprite的子类。CUSTOM_CLASS_ARGS-传递到CUSTOM_CLASS的构造函数中的自定义参数

例如:

代码块::

layer_options = {
    "Platforms": {
        "use_spatial_hash": True,
        "scaling": 2.5,
        "offset": (-128, 64),
        "custom_class": Platform,
        "custom_class_args": {
            "health": 100
        }
    },
}

将每个层中的索引及其值传递给使用 ** 字典上的运算符。

属性:
tiled_map

拼贴解析器映射对象。这对于通过直接访问原始地图数据来实现此类不支持的功能非常有用。

宽度

地图的宽度,以平铺为单位。这是瓷砖的数量,而不是像素。

高度

地图的高度(以平铺为单位)。这是瓷砖的数量,而不是像素。

tile_width

每个平铺的宽度(以像素为单位)。

tile_height

每个平铺的高度(以像素为单位)。

background_color

地图的背景色。

缩放

要应用于贴图中所有精灵的全局缩放值。

sprite_lists

将SpriteList映射到其层名称的词典。此选项用于地图的所有平铺层。

object_lists

将瓷砖对象映射到其层名称的词典。这将用于地图的所有对象层。

偏移

包含X和Y位置偏移值的元组。

get_cartesian(x: float, y: float) Tuple[float, float][源代码]#

给定一组以像素为单位的坐标,它将返回笛卡尔坐标。

这假设提供的坐标是像素坐标,并使笛卡尔栅格基于贴图的平铺大小。

如果您有一张具有128x128像素切片的地图,并且您为该函数提供了坐标500,250,您将收到3,2

参数
  • x (float) -- 要转换的X坐标

  • y (float) -- 要转换的Y坐标

arcade.tilemap.load_tilemap#

arcade.tilemap.load_tilemap(map_file: Union[str, pathlib.Path], scaling: float = 1.0, layer_options: Optional[Dict[str, Dict[str, Any]]] = None, use_spatial_hash: Optional[bool] = None, hit_box_algorithm: str = 'Simple', hit_box_detail: float = 4.5, offset: pyglet.math.Vec2 = Vec2(0, 0)) arcade.tilemap.tilemap.TileMap[源代码]#

给定一个.json映射文件,加载并返回一个 TileMap 对象。

可以使用类直接创建切片地图 __init__ 功能。此功能的存在是为了便于使用。

有关LAYER_OPTIONS键的详细说明,请参阅 __init__ 的功能 TileMap 班级

参数
  • map_file (Union[str, Path]) -- JSON映射文件。

  • scaling (float) -- 要应用于贴图内所有精灵的全局缩放。

  • use_spatial_hash (Optional[bool]) -- 如果设置为True,这将使在SpriteList中移动精灵的速度变慢,但它将加快与SpriteList中的项的碰撞检测。非常适合使用静态墙/平台进行碰撞检测。

  • hit_box_algorithm (str) -- ‘None’、‘Simple’或‘Detail’之一。

  • hit_box_detail (float) -- 浮动,默认为4.5。与‘Detailed’连用,表示命中框。

  • layer_options (Dict[str, Dict[str, Any]]) -- 地图的特定于层的选项。

  • offset (pyglet.math.Vec2) -- 可用于偏移地图中所有精灵和对象的位置。这将应用于平铺的任何偏移之外。可以使用LAYER_OPTIONS DICT覆盖此值。

arcade.tilemap.read_tmx#

arcade.tilemap.read_tmx(map_file: Union[str, pathlib.Path]) pytiled_parser.tiled_map.TiledMap[源代码]#

函数,以发出该函数已被删除的警告。

为过时的代码库提供信息。