projects
/
python-bulletml.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
FireDef.__call__: Minor optimizations.
[python-bulletml.git]
/
bulletml-runner
diff --git
a/bulletml-runner
b/bulletml-runner
index
25fa50b
..
f361d75
100755
(executable)
--- a/
bulletml-runner
+++ b/
bulletml-runner
@@
-8,7
+8,7
@@
import pygame
import bulletml
import bulletml.bulletyaml
import bulletml
import bulletml.bulletyaml
-from bulletml.collision import collides
+from bulletml.collision import collides
_all
try:
import yaml
try:
import yaml
@@
-28,11
+28,17
@@
def main(argv):
pygame.display.init()
screen = pygame.display.set_mode([600, 600], pygame.DOUBLEBUF)
pygame.display.init()
screen = pygame.display.set_mode([600, 600], pygame.DOUBLEBUF)
- bullet = pygame.Surface([3, 3])
- bullet.fill([255, 0, 0])
+ red = pygame.Surface([3, 3])
+ red.fill([255, 0, 0])
+ green = pygame.Surface([3, 3])
+ green.fill([0, 255, 0])
+ blue = pygame.Surface([3, 3])
+ blue.fill([0, 0, 255])
clock = pygame.time.Clock()
target = bulletml.Bullet()
clock = pygame.time.Clock()
target = bulletml.Bullet()
+ bullets = dict(red=red, green=green, blue=blue)
+
file_idx = 0
while True:
file_idx = 0
while True:
@@
-44,7
+50,7
@@
def main(argv):
active = set([source])
source.vanished = True
print filename
active = set([source])
source.vanished = True
print filename
- print " Loaded %d top-level actions." % len(source.
_
actions)
+ print " Loaded %d top-level actions." % len(source.actions)
frames = 0
total = 0
paused = False
frames = 0
total = 0
paused = False
@@
-72,16
+78,18
@@
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.actions]
- 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)
source.vanished = True
active.add(source)
target.x, target.y = pygame.mouse.get_pos()
target.x /= 2
target.y /= 2
source.vanished = True
active.add(source)
target.x, target.y = pygame.mouse.get_pos()
target.x /= 2
target.y /= 2
+ target.y = 300 - target.y
+ target.px = target.x
+ target.py = target.y
+ collides = False
if not paused or go:
lactive = list(active)
start = time.time()
if not paused or go:
lactive = list(active)
start = time.time()
@@
-94,7
+102,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)
- collides(obj, lactive[0])
+ if lactive:
+ collides = collides_all(target, lactive)
elapsed = time.time() - start
frames += 1
elapsed = time.time() - start
frames += 1
@@
-104,10
+113,10
@@
def main(argv):
if elapsed:
seconds_per_bullet = elapsed / count
bullets_per_second = count / elapsed
if elapsed:
seconds_per_bullet = elapsed / count
bullets_per_second = count / elapsed
- print " %g seconds per bullet (
6
0Hz max: %g)." % (
- seconds_per_bullet, bullets_per_second /
6
0)
+ print " %g seconds per bullet (
12
0Hz max: %g)." % (
+ seconds_per_bullet, bullets_per_second /
12
0)
- screen.fill([0, 0,
0]
)
+ screen.fill([0, 0,
64] if collides else [0, 0, 0]
)
for obj in active:
try:
x, y = obj.x, obj.y
for obj in active:
try:
x, y = obj.x, obj.y
@@
-119,7
+128,8
@@
def main(argv):
y *= 2
x -= 1
y -= 1
y *= 2
x -= 1
y -= 1
- screen.blit(bullet, [x, y])
+ bullet = bullets.get(obj.appearance, red)
+ screen.blit(bullet, [x, 600 - y])
clock.tick(60)
pygame.display.flip()
clock.tick(60)
pygame.display.flip()