X-Git-Url: https://git.yukkurigames.com/?p=python-bulletml.git;a=blobdiff_plain;f=bulletml-runner;h=c08e3d8b0761e8958423157ffff8b4e763102cbf;hp=d4919886a39b08b30432bc3a8b8081b172e95e71;hb=2d1ad947cd9ebb183d63b062132fa4df11e8bc61;hpb=efb1bac1744eddeb90359cc4d20dc99ce0f6a94a diff --git a/bulletml-runner b/bulletml-runner index d491988..c08e3d8 100755 --- a/bulletml-runner +++ b/bulletml-runner @@ -1,5 +1,6 @@ #!/usr/bin/env python +import os import sys import pygame @@ -7,16 +8,21 @@ import pygame import bulletml def main(argv): + if not argv: + raise SystemExit("Usage: %s filename ..." % sys.argv[0]) + pygame.display.init() screen = pygame.display.set_mode([600, 600], pygame.DOUBLEBUF) bullet = pygame.Surface([3, 3]) bullet.fill([255, 0, 0]) - filename = argv[0] - doc = bulletml.BulletML(open(filename, "rU")) clock = pygame.time.Clock() target = bulletml.Bullet() + file_idx = 0 + while True: + filename = argv[file_idx % len(argv)] + doc = bulletml.BulletML(open(filename, "rU")) source = bulletml.Bullet.FromDoc( doc, x=150, y=150, target=target, rank=0.5) @@ -27,8 +33,11 @@ def main(argv): frames = 0 total = 0 paused = False + newfile = False - while active: + pygame.display.set_caption(os.path.basename(filename)) + + while active and not newfile: go = False for event in pygame.event.get(): @@ -39,9 +48,22 @@ def main(argv): paused ^= True elif event.key == pygame.K_RIGHT: go = True + elif event.key == pygame.K_PAGEUP: + file_idx -= 1 + newfile = True + elif event.key == pygame.K_PAGEDOWN: + file_idx += 1 + newfile = True + elif event.key == pygame.K_RETURN: + newfile = True + elif event.key == pygame.K_s: + source = bulletml.Bullet.FromDoc( + doc, x=150, y=150, target=target, rank=0.5) + source.vanished = True + active.add(source) target.x, target.y = pygame.mouse.get_pos() target.x /= 2 - target.y = (screen.get_height() - target.y) / 2 + target.y /= 2 if not paused or go: @@ -71,20 +93,11 @@ def main(argv): y *= 2 x -= 1 y -= 1 - screen.blit(bullet, [x, screen.get_height() - y]) + screen.blit(bullet, [x, y]) pygame.display.flip() clock.tick(60) - for event in pygame.event.get(): - if event.type == pygame.QUIT: - raise SystemExit - elif event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE: - paused ^= True - elif event.key == pygame.K_RIGHT: - go = True - print " Finished: %04d: %d bullets." % (frames, total) if __name__ == "__main__":