from math import atan2, sin, cos
-from bulletml import parser
+from bulletml.parser import ActionDef, ActionRef
__all__ = ["Action", "Bullet"]
def step(self, owner, created):
"""Advance by one frame."""
- s_params = self.params
- rank = owner.rank
if self.speed_frames > 0:
self.speed_frames -= 1
self.wait_frames -= 1
return
+ s_params = self.params
+ rank = owner.rank
+
while True:
self.pc += 1
self.pc = 0
action = self.actions[self.pc]
- if isinstance(action, (parser.ActionDef, parser.ActionRef)):
+ if isinstance(action, (ActionDef, ActionRef)):
child = self.Child(action, s_params, rank)
owner.replace(self, child)
child.step(owner, created)
for action in self.actions:
action.step(self, created)
+ speed = self.speed
+ direction = self.direction
self.px = self.x
self.py = self.y
- self.x += self.mx + sin(self.direction) * self.speed
- self.y += -self.my + cos(self.direction) * self.speed
+ self.x += self.mx + sin(direction) * speed
+ self.y += -self.my + cos(direction) * speed
return created