ExCollision.TMX.WorldBuilder (ExCollision v1.1.0)

View Source

Builds collision world from TMX map: adds static AABBs from tile layer and objectgroup. Provides unified interface via Collidable protocol for objects.

Summary

Functions

Creates dynamic body (Body) at MapObject position — for spawning player/entity from TMX point. MapObject must have width and height (rectangle). Options: :velocity, :data.

Creates world and fills it with static collisions from TMX map.

Functions

body_from_map_object(map_object, id, opts \\ [])

@spec body_from_map_object(ExCollision.TMX.MapObject.t(), term(), keyword()) ::
  ExCollision.World.Body.t() | nil

Creates dynamic body (Body) at MapObject position — for spawning player/entity from TMX point. MapObject must have width and height (rectangle). Options: :velocity, :data.

from_tmx(tmx_map, opts \\ [])

@spec from_tmx(
  ExCollision.TMX.Map.t(),
  keyword()
) :: ExCollision.World.t()

Creates world and fills it with static collisions from TMX map.

Options:

  • :collision_layer — name of tile layer for collisions (e.g. "Walls"). Default: first layer named "Walls" or first tile layer.
  • :collision_object_groups — list of objectgroup names for collisions (e.g. ["Collision"]). Default: all objectgroups.
  • :tile_width, :tile_height — tile size in pixels (from map if not set).