Mercurial > rinkhals
changeset 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 | 548bd549923c |
children | bcb392e54df0 |
files | data/images/gameover_lose.png data/images/gameover_win.png data/images/splash.png data/level1.tga data/levels/farm.tga gamelib/gameboard.py regenerate_level_data.py |
diffstat | 7 files changed, 44 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/gamelib/gameboard.py Sat Sep 05 14:32:01 2009 +0000 +++ b/gamelib/gameboard.py Sat Sep 05 14:40:58 2009 +0000 @@ -241,7 +241,7 @@ self.disp = main_app self.tv = tiles.FarmVid() self.tv.png_folder_load_tiles(data.filepath('tiles')) - self.tv.tga_load_level(data.filepath('level1.tga')) + self.tv.tga_load_level(data.filepath('levels/farm.tga')) self.create_display() self.selected_tool = None
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/regenerate_level_data.py Sat Sep 05 14:40:58 2009 +0000 @@ -0,0 +1,43 @@ +#!/usr/bin/env python + +import os.path + +import pygame +from pygame.locals import SWSURFACE, SRCALPHA + +from gamelib import tiles, buildings +import regenerate_pngs + +LEVEL_PATH = "data/levels" +TILE_WIDTH = 20 +TILE_HEIGHT = 20 +TILES_X = 8 +TILES_Y = 8 +WIDTH = TILES_X * TILE_WIDTH +HEIGHT = TILES_Y * TILE_HEIGHT + +def generate_image(name, basepath): + fn, _ = os.path.splitext(os.path.basename(name)) + svg_name = os.path.join(basepath, fn+".svg") + png_name = os.path.join(LEVEL_PATH, fn+".png") + regenerate_pngs.svg_to_png(svg_name, png_name, TILE_WIDTH, TILE_HEIGHT) + return pygame.image.load(png_name) + +def get_tile_mappings(): + tile_map = {} + for building in buildings.BUILDINGS: + tn = building.TILE_NO + tile_map[tn] = generate_image(building.IMAGE, regenerate_pngs.SPRITE_PATH) + for tn, (_, tile_png) in tiles.TileMap.DEFAULT_TILES.items(): + if tn not in tile_map: + tile_map[tn] = generate_image(tile_png, regenerate_pngs.TILE_PATH) + return tile_map + +if __name__ == '__main__': + s = pygame.Surface((WIDTH, HEIGHT), SWSURFACE|SRCALPHA, 32) + s.fill((0,0,0,0)) + for n, img in get_tile_mappings().items(): + rect = (TILE_WIDTH*(n % TILES_X), TILE_HEIGHT*(n / TILES_X), TILE_WIDTH, TILE_HEIGHT) + print n, rect + s.blit(img, rect) + pygame.image.save(s, os.path.join(LEVEL_PATH, "tiles.tga"))