Mercurial > skaapsteker
view scripts/level-editor @ 30:60d5673f9d4a
We can do that more cleanly :P
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 03 Apr 2011 18:45:10 +0200 |
parents | 10c067be3e8f |
children | 6f1e43d2fda8 |
line wrap: on
line source
#!/usr/bin/env python "Skaapsteker level editor" import optparse import os.path import sys sys.path.insert(0, os.path.abspath(os.path.abspath(__file__))) import pygame import pygame.key from pygame.locals import (SWSURFACE, QUIT, KEYDOWN, K_UP, K_DOWN, K_LEFT, K_RIGHT, KMOD_SHIFT) from skaapsteker.constants import SCREEN from skaapsteker.level import Level FRAMERATE = 60 def run(levelname): clock = pygame.time.Clock() surface = pygame.display.get_surface() level = Level(levelname) position = [0, 0] while True: events = pygame.event.get() for ev in events: if ev.type is QUIT: return elif ev.type is KEYDOWN: distance = 64 if ev.mod & KMOD_SHIFT != 0: distance *= 10 if ev.key == K_UP: position[1] -= distance elif ev.key == K_DOWN: position[1] += distance elif ev.key == K_LEFT: position[0] -= distance elif ev.key == K_RIGHT: position[0] += distance position[0] = max(position[0], 0) position[0] = min(position[0], level.level_size[0] - SCREEN[0]) position[1] = max(position[1], 0) position[1] = min(position[1], level.level_size[1] - SCREEN[1]) level.draw(surface, position) pygame.display.flip() clock.tick(FRAMERATE) 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) pygame.display.set_caption("Skapsteker Level Editor") pygame.key.set_repeat(100, 20) run(args[0]) if __name__ == '__main__': main()