projects
/
python-bulletml.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Optional Pyrex extension for the collision module. More than doubles its speed.
[python-bulletml.git]
/
bulletml-runner
diff --git
a/bulletml-runner
b/bulletml-runner
index
62e9fdf
..
7c262b0
100755
(executable)
--- a/
bulletml-runner
+++ b/
bulletml-runner
@@
-7,9
+7,16
@@
import time
import pygame
import bulletml
import pygame
import bulletml
+import bulletml.bulletyaml
+from bulletml.collision import collides_all
try:
try:
- import psyco
+ import yaml
+except ImportError:
+ yaml = None
+
+try:
+ import psycox
except ImportError:
pass
else:
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"))
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
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:
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)
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:
target.y /= 2
if not paused or go:
-
+ lactive = list(active)
start = time.time()
count = len(active)
start = time.time()
count = len(active)
- for obj in l
ist(active)
:
+ for obj in l
active
:
new = obj.step()
total += len(new)
active.update(new)
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)
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
elapsed = time.time() - start
frames += 1