Mercurial > rinkhals
comparison regenerate_level_data.py @ 278:f6bd57494e81
Better tile/level tools. Also better game board.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 05 Sep 2009 14:40:58 +0000 |
parents | |
children | f0d5984dff92 |
comparison
equal
deleted
inserted
replaced
277:548bd549923c | 278:f6bd57494e81 |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 import os.path | |
4 | |
5 import pygame | |
6 from pygame.locals import SWSURFACE, SRCALPHA | |
7 | |
8 from gamelib import tiles, buildings | |
9 import regenerate_pngs | |
10 | |
11 LEVEL_PATH = "data/levels" | |
12 TILE_WIDTH = 20 | |
13 TILE_HEIGHT = 20 | |
14 TILES_X = 8 | |
15 TILES_Y = 8 | |
16 WIDTH = TILES_X * TILE_WIDTH | |
17 HEIGHT = TILES_Y * TILE_HEIGHT | |
18 | |
19 def generate_image(name, basepath): | |
20 fn, _ = os.path.splitext(os.path.basename(name)) | |
21 svg_name = os.path.join(basepath, fn+".svg") | |
22 png_name = os.path.join(LEVEL_PATH, fn+".png") | |
23 regenerate_pngs.svg_to_png(svg_name, png_name, TILE_WIDTH, TILE_HEIGHT) | |
24 return pygame.image.load(png_name) | |
25 | |
26 def get_tile_mappings(): | |
27 tile_map = {} | |
28 for building in buildings.BUILDINGS: | |
29 tn = building.TILE_NO | |
30 tile_map[tn] = generate_image(building.IMAGE, regenerate_pngs.SPRITE_PATH) | |
31 for tn, (_, tile_png) in tiles.TileMap.DEFAULT_TILES.items(): | |
32 if tn not in tile_map: | |
33 tile_map[tn] = generate_image(tile_png, regenerate_pngs.TILE_PATH) | |
34 return tile_map | |
35 | |
36 if __name__ == '__main__': | |
37 s = pygame.Surface((WIDTH, HEIGHT), SWSURFACE|SRCALPHA, 32) | |
38 s.fill((0,0,0,0)) | |
39 for n, img in get_tile_mappings().items(): | |
40 rect = (TILE_WIDTH*(n % TILES_X), TILE_HEIGHT*(n / TILES_X), TILE_WIDTH, TILE_HEIGHT) | |
41 print n, rect | |
42 s.blit(img, rect) | |
43 pygame.image.save(s, os.path.join(LEVEL_PATH, "tiles.tga")) |