Mercurial > skaapsteker
view scripts/level-shot @ 634:20d6aef11249 default tip
Fix iCCC profiles in PNGs to avoid verbose warnings from libpng.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Fri, 27 Jan 2023 23:32:07 +0100 |
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()