# HG changeset patch # User Stefano Rivera # Date 1302450979 -7200 # Node ID dc73dda93fb1aa72d1004bbde3f51b22af56fcca # Parent 635cf02186e6086c8c3cf5b0083ae3c1d40fd93d Level shot tool diff -r 635cf02186e6 -r dc73dda93fb1 scripts/level-shot --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/level-shot Sun Apr 10 17:56:19 2011 +0200 @@ -0,0 +1,51 @@ +#!/usr/bin/env python +"Skaapsteker level -> image tool" + +from __future__ import division + +import optparse +import os.path +import sys + +sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) + +import pygame +from pygame.locals import SWSURFACE + +from skaapsteker.constants import SCREEN +from skaapsteker.level import Level +from skaapsteker.sprites.player import Player +from skaapsteker.gamestate import GameState +from skaapsteker.sound import SoundSystem +from skaapsteker.data import filepath + +def run(levelname): + game = GameState(None) + game.load_game(filepath("game.json")) + player = Player(game.world, SoundSystem(False)) + + level = Level(levelname, player) + level.backgrounds = [] + level_surface = level.get_surface() + for sprite in game.create_sprites(levelname): + level.sprites.add(sprite) + + clip_rect = pygame.Rect((0, 0), level_surface.get_size()) + level_surface.set_clip(clip_rect) + level_surface.fill((220, 220, 220)) + level.draw(level_surface) + level.sprites.draw(level_surface) + pygame.image.save(level_surface, levelname + '.png') + +def main(): + p = optparse.OptionParser(usage="%prog [options] levelname") + opts, args = p.parse_args() + if len(args) != 1: + p.error("Must provide level name") + pygame.display.init() + pygame.font.init() + pygame.display.set_mode(SCREEN, SWSURFACE) + run(args[0]) + +if __name__ == '__main__': + main()