Mercurial > skaapsteker
changeset 590:dc73dda93fb1
Level shot tool
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 10 Apr 2011 17:56:19 +0200 |
parents | 635cf02186e6 |
children | 87947e4afa02 |
files | scripts/level-shot |
diffstat | 1 files changed, 51 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /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()