Skip to main content

A pygame rendering engine for top-down tile sets.

Project description

Tile Forge

This is a package for rendering top-down maps from a provided tile set image.

Class Diagram

---
title: Class Relations
---

classDiagram
    Renderer *-- Tileset
    Renderer *-- Map
    class Tileset {
        + all_properties: dict[int, set[int]]
        + tile_size: int
        + path: str
        + load()
        + get_scaled_tiles(scale: int)
        + has_property(tile_index: int, property_id: int): bool
        + set_property(tile_index: int, property_index: int): void
        + remove_property(tile_index: int, property_index: int): void
        + toggle_property(tile_index: int, property_index: int): void
    }

    class Map {
        + width: int
        + height: int
        + layers: list[Layer]
        + set_layers(layers: list[Layer])
        + set_layer_count(count: int)
        + add_layer(layer: Layer)
        + cell_has_property(tileset: Tileset, pos: tuple[int, int], property_id: int): bool
    }

    class Renderer {
        - __map: Map
        - __tileset: Tileset
        + render_tile_size: int
        + tiles: list[Surface]
        + set_render_scale(scale: int)
        + render(surface: Surface, offset: [int, int], callback): void
    }

Usage

import pygame
from tileforge import Tileset, Map, Renderer

pygame.init()

# You need a pygame surface to render the map, so make sure to initialize pygame first
surface = pygame.Surface((640, 480))  # Create a surface to render on

# Load the tileset and map
tileset = Tileset("path/to/tileset.png", 32)
tileset.load()

# Create a map with the loaded tileset
map = Map(10, 10)  # 10x10

# Create a renderer and render the map
renderer = Renderer(tileset, map)
renderer.render(surface)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tileforge-0.1.1.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tileforge-0.1.1-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file tileforge-0.1.1.tar.gz.

File metadata

  • Download URL: tileforge-0.1.1.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for tileforge-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1fdef745aac915cd869294398873209c88e050ddec3dcae553a3ab499c7852e4
MD5 c596b8af26e3130f8ff9f2b1296d1489
BLAKE2b-256 b9439e8ff89b0e2bede584d6030b7de9f54f8644592767e422afedf0af679f84

See more details on using hashes here.

File details

Details for the file tileforge-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tileforge-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for tileforge-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 858e2eef436f1d63b54816b73b3212c2120b95eead96f3fec423671ed4602585
MD5 dd7437490171f00c6fae83bbd27756d0
BLAKE2b-256 ceaf6746016b4d528499b1a52892e55e47f8f12ff093e747269b5c455dff2dba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page