X-Git-Url: https://git.yukkurigames.com/?p=python-bulletml.git;a=blobdiff_plain;f=bulletml-runner;h=7c262b02ba3d0ce9bf01e9d4bea0be7507a67213;hp=62e9fdfe4e29918ffbb30c0bb744d119faa835dd;hb=7b73a60799150ec3df407a8a1620a613aad5f59c;hpb=957c866b2ee0e135016728c810fb8e802969a519 diff --git a/bulletml-runner b/bulletml-runner index 62e9fdf..7c262b0 100755 --- a/bulletml-runner +++ b/bulletml-runner @@ -7,9 +7,16 @@ import time import pygame import bulletml +import bulletml.bulletyaml +from bulletml.collision import collides_all try: - import psyco + import yaml +except ImportError: + yaml = None + +try: + import psycox except ImportError: pass else: @@ -31,9 +38,8 @@ def main(argv): while True: filename = argv[file_idx % len(argv)] doc = bulletml.BulletML.FromDocument(open(filename, "rU")) - actions = [act([], 0.5) for act in doc.top] - source = bulletml.Bullet( - x=150, y=150, target=target, actions=actions, rank=0.5) + source = bulletml.Bullet.FromDocument( + doc, x=150, y=150, target=target, rank=0.5) active = set([source]) source.vanished = True @@ -66,7 +72,7 @@ def main(argv): elif event.key == pygame.K_RETURN: newfile = True elif event.key == pygame.K_s: - actions = [act([], 0.5) for act in doc.top] + actions = [act([], 0.5) for act in doc.actions] source = bulletml.Bullet( x=150, y=150, target=target, actions=actions, rank=0.5) @@ -77,10 +83,10 @@ def main(argv): target.y /= 2 if not paused or go: - + lactive = list(active) start = time.time() count = len(active) - for obj in list(active): + for obj in lactive: new = obj.step() total += len(new) active.update(new) @@ -88,6 +94,8 @@ def main(argv): or not (-50 < obj.x < 350) or not (-50 < obj.y < 350)): active.remove(obj) + if lactive: + collides_all(lactive[0], lactive) elapsed = time.time() - start frames += 1