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.7.tar.gz
(135.6 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.7.tar.gz.
File metadata
- Download URL: tilemap_parser-4.2.7.tar.gz
- Upload date:
- Size: 135.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cb3f964d435f147bf2f7b225be815f7b024bceebb9349c40b5985c55354cc09
|
|
| MD5 |
151fa25be054c767e944e4d6f536dc38
|
|
| BLAKE2b-256 |
60675e434cafcf63321ed8d11fd4290a8be0c39062cb9b4a438e6a95c1a50cb1
|
File details
Details for the file tilemap_parser-4.2.7-py3-none-any.whl.
File metadata
- Download URL: tilemap_parser-4.2.7-py3-none-any.whl
- Upload date:
- Size: 91.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f418e9ba246b604f4c7e474df9760296da3830471bb87fb94c9b8d58a27ab959
|
|
| MD5 |
ea842115bf57496bfe72eb87a38bba01
|
|
| BLAKE2b-256 |
8fb75900fb640086ad765fed22af41f2aeb28abc8be30a2d03a5f9151eafca31
|