62e9fdfe4e29918ffbb30c0bb744d119faa835dd
20 raise SystemExit("Usage: %s filename ..." % sys
.argv
[0])
23 screen
= pygame
.display
.set_mode([600, 600], pygame
.DOUBLEBUF
)
24 bullet
= pygame
.Surface([3, 3])
25 bullet
.fill([255, 0, 0])
26 clock
= pygame
.time
.Clock()
27 target
= bulletml
.Bullet()
32 filename
= argv
[file_idx
% len(argv
)]
33 doc
= bulletml
.BulletML
.FromDocument(open(filename
, "rU"))
34 actions
= [act([], 0.5) for act
in doc
.top
]
35 source
= bulletml
.Bullet(
36 x
=150, y
=150, target
=target
, actions
=actions
, rank
=0.5)
38 active
= set([source
])
39 source
.vanished
= True
41 print " Loaded %d top-level actions." % len(source
._actions
)
47 pygame
.display
.set_caption(os
.path
.basename(filename
))
49 while active
and not newfile
:
52 for event
in pygame
.event
.get():
53 if event
.type == pygame
.QUIT
:
55 elif event
.type == pygame
.KEYDOWN
:
56 if event
.key
== pygame
.K_SPACE
:
58 elif event
.key
== pygame
.K_RIGHT
:
60 elif event
.key
== pygame
.K_PAGEUP
:
63 elif event
.key
== pygame
.K_PAGEDOWN
:
66 elif event
.key
== pygame
.K_RETURN
:
68 elif event
.key
== pygame
.K_s
:
69 actions
= [act([], 0.5) for act
in doc
.top
]
70 source
= bulletml
.Bullet(
71 x
=150, y
=150, target
=target
,
72 actions
=actions
, rank
=0.5)
73 source
.vanished
= True
75 target
.x
, target
.y
= pygame
.mouse
.get_pos()
83 for obj
in list(active
):
88 or not (-50 < obj
.x
< 350)
89 or not (-50 < obj
.y
< 350)):
91 elapsed
= time
.time() - start
95 print " Processing: %04d: %d bullets, %d active." % (
98 seconds_per_bullet
= elapsed
/ count
99 bullets_per_second
= count
/ elapsed
100 print " %g seconds per bullet (60Hz max: %g)." % (
101 seconds_per_bullet
, bullets_per_second
/ 60)
103 screen
.fill([0, 0, 0])
107 except AttributeError:
115 screen
.blit(bullet
, [x
, y
])
117 pygame
.display
.flip()
119 print " Finished: %04d: %d bullets." % (frames
, total
)
121 if __name__
== "__main__":