Setup for basic Editor for map, started gameplay screen
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import pygame, json
|
||||
|
||||
class Tilemap:
|
||||
def __init__(self, game, tile=16):
|
||||
self.game = game
|
||||
self.tile_size = tile
|
||||
self.tilemap = {}
|
||||
|
||||
def save(self, path):
|
||||
f = open(path, 'w')
|
||||
json.dump({'tilemap': self.tilemap, 'tile_size': self.tile_size}, f)
|
||||
f.close()
|
||||
|
||||
def load(self, path):
|
||||
f = open(path, 'r')
|
||||
map_data = json.load(f)
|
||||
f.close()
|
||||
|
||||
self.tilemap = map_data['tilemap']
|
||||
self.tile_size = map_data['tile_size']
|
||||
|
||||
|
||||
def render(self, surf, offset=(0, 0)):
|
||||
for x in range(offset[0] // self.tile_size, (offset[0] + surf.get_width()) // self.tile_size + 1):
|
||||
for y in range(offset[1] // self.tile_size, (offset[1] + surf.get_height()) // self.tile_size + 1):
|
||||
loc = str(x) + ';' + str(y)
|
||||
if loc in self.tilemap:
|
||||
tile = self.tilemap[loc]
|
||||
surf.blit(self.game.assets[tile['type']][tile['variant']], (tile['pos'][0] * self.tile_size - offset[0], tile['pos'][1] * self.tile_size - offset[1]))
|
||||
Reference in New Issue
Block a user