view scripts/level-shot @ 619:4ffa9d159588

Some coordinate operators, to reduce foo_x, foo_y everywhere.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 06 May 2011 16:37:43 +0200
parents dc73dda93fb1
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()