Mercurial > touhou
diff pytouhou/vm/__init__.py @ 599:d471b07ce4fd
Add a sample Python ECL.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Sat, 25 Oct 2014 18:52:21 +0200 |
parents | e15672733c93 |
children | d1f0bb0b7a17 |
line wrap: on
line diff
--- a/pytouhou/vm/__init__.py +++ b/pytouhou/vm/__init__.py @@ -1,3 +1,29 @@ from .anmrunner import ANMRunner from .msgrunner import MSGRunner from .eclrunner import ECLMainRunner + + +class PythonMainRunner(object): + def __init__(self, main, game): + self.main = main + self.game = game + + def run_iter(self): + self.main(self.game) + + +class EnemyRunner(object): + def __init__(self, enemy, game, sub): + self.enemy = enemy + self.game = game + self.sub = sub + + def run_iteration(self): + self.sub(self.enemy, self.game) + + +def spawn_enemy(game, sub, x=0., y=0., life=1, item=-1, score=0, mirrored=False, random=False): + instr_type = (2 if mirrored else 0) | (4 if random else 0) + enemy = game.new_enemy((x, y, 0.), life, instr_type, item, score) + enemy.process = EnemyRunner(enemy, game, sub) + enemy.process.run_iteration()