DnDMap/Tiles.py

32 lines
834 B
Python

import pygame
import numpy as np
tile_size = 64
MAT_ISO = np.array([[0.5, 0.25], [-0.5, 0.25]])
class MapTile(pygame.sprite.Sprite):
def __init__(self, x: int, y: int):
super(MapTile, self).__init__()
self.image = pygame.image.load("tileset/placeholder.png")
self.rect = self.image.get_rect()
self.rect.center = (x, y)
class IsoMapTile(MapTile):
def __init__(
self,
u: int,
v: int,
elevation: int = 0,
origin: np.ndarray = np.array([100, 100]),
):
vec = np.array([u, v]) @ MAT_ISO * tile_size + origin
super(IsoMapTile, self).__init__(vec[0], vec[1] + tile_size / 8 * elevation)
self.u = u
self.v = v
self.elevation = elevation
def update(self, dx: int, dy: int):
self.rect.move_ip(-dx, -dy)