tilemap-parser
Standalone parser/loader for tilemap-editor JSON maps, sprite animations, and collision detection runtime.
Features
- Map parsing: Load and query tilemaps, layers, objects, and autotile data from JSON
- Chunked tile rendering: Efficient visibility culling and chunk-based rendering with
TileLayerRenderer - Camera system: Centered/deadzone follow, lerp smoothing, screen-shake, and bounds clamping with
Camera - Animation: Frame-based sprite animation with
AnimationPlayer - Particle system: Configurable particle emitters with shapes, color transitions, alpha fades, gravity, and batch rendering with
ParticleSystem+SpriteBatchRenderer - Collision (tile-based): Polygon collision detection for tilemaps with slide, platformer, and RPG movement modes via
CollisionRunner - Collision (object-to-object): Spatial-grid mixed-shape collision detection (rect, circle, capsule, polygon) with layer filtering via
ObjectCollisionManager - Capsule support: Full capsule collision against all shape types
- Hit helpers:
CollisionHit.resolve(),involves(),other()for ergonomic separation
Quick Start
from tilemap_parser import load_map, TileLayerRenderer, Camera
# Load map and set up renderer
game_data = load_map("path/to/map.json")
renderer = TileLayerRenderer(game_data)
# Set up camera
camera = Camera(800, 600, mode="centered")
camera.follow(player)
from tilemap_parser import (
CollisionRunner, CollisionCache,
ObjectCollisionManager, CircleShape, RectangleShape,
ParticleSystem, ParticleSystemConfig
)
# Tile-based collision
cache = CollisionCache()
tileset = cache.get_tileset_collision("data/collision/tileset.collision.json")
runner = CollisionRunner.from_game_type("topdown", tile_size=(32, 32))
# Object-to-object collision
manager = ObjectCollisionManager()
manager.add_object(player)
for hit in manager.check_all_collisions():
hit.resolve() # separate both objects
# Particle system
particle_config = ParticleSystemConfig(
particle_shape="circle",
spawn_rate=10.0,
max_particles=100,
lifetime_min=0.5,
lifetime_max=2.0,
speed_min=50,
speed_max=100,
direction=270,
spread=45,
start_color_r=255, start_color_g=200, start_color_b=100, start_color_a=255,
end_color_r=255, end_color_g=100, end_color_b=50, end_color_a=0,
alpha_fade="fade_out",
gravity_x=0,
gravity_y=50,
)
particles = ParticleSystem(particle_config)
Links
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tilemap_parser-4.2.8.tar.gz
(141.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tilemap_parser-4.2.8.tar.gz.
File metadata
- Download URL: tilemap_parser-4.2.8.tar.gz
- Upload date:
- Size: 141.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2b3b8f83a88cce2efaeba10cad57634f1e6a8dff8961daddc2c2e3f3bb7951a
|
|
| MD5 |
d38984ef1f4e2e3a62756af3e3ceabc6
|
|
| BLAKE2b-256 |
cab2c98eeaa417e4074d128a5d029dc606acfd34518170167dcf679acd643f28
|
File details
Details for the file tilemap_parser-4.2.8-py3-none-any.whl.
File metadata
- Download URL: tilemap_parser-4.2.8-py3-none-any.whl
- Upload date:
- Size: 95.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
608c53a357238417d6ec5ab56bb4e62c6aa8a2c127cbee598f10d3fe394b67ef
|
|
| MD5 |
1c41697b384429b2c0c19611a0598662
|
|
| BLAKE2b-256 |
a94673d660c45149d320a6509a22050b1004fdd024c01614805f9bcd7476e409
|