Standalone parser/loader for tilemap-editor JSON maps, sprite animations, and collision detection runtime.
Project description
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
Project details
Release history Release notifications | RSS feed
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.0.tar.gz
(122.3 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.0.tar.gz.
File metadata
- Download URL: tilemap_parser-4.2.0.tar.gz
- Upload date:
- Size: 122.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a0e235b2c24c80ad18e234aae45b40fc7fae93fe37f6a047d7eea5c38a44cb9
|
|
| MD5 |
fef729322f072593652a415ba0d0a81c
|
|
| BLAKE2b-256 |
830739fec16c4b36b430b0accf68a5c9b5697ee2541217004a100646cf48be2e
|
File details
Details for the file tilemap_parser-4.2.0-py3-none-any.whl.
File metadata
- Download URL: tilemap_parser-4.2.0-py3-none-any.whl
- Upload date:
- Size: 86.7 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 |
148a1055f028ec14e10afc7dd13100f18f5dc186ee78e2a63686658976baffce
|
|
| MD5 |
2b53a9f2dced41311aad8339c84a7b38
|
|
| BLAKE2b-256 |
739a8e3d354cdbb0555124db076014287bfb233396679bb6e817ac01612c6063
|