view scripts/level-shot @ 590:dc73dda93fb1

Level shot tool
author Stefano Rivera <stefano@rivera.za.net>
date Sun, 10 Apr 2011 17:56:19 +0200
parents
children
line wrap: on
line source

#!/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()