view pytouhou/vm/__init__.py @ 792:11bc22bad1bf default tip

python: Replace the image crate with png We weren’t using any of its features anyway, so the png crate is exactly what we need, without the many heavy dependencies of image. https://github.com/image-rs/image-png/pull/670 will eventually make it even faster to build.
author Link Mauve <linkmauve@linkmauve.fr>
date Sat, 17 Jan 2026 22:22:25 +0100
parents d1f0bb0b7a17
children
line wrap: on
line source

from .anmrunner import ANMRunner
from .msgrunner import MSGRunner
from .eclrunner import ECLMainRunner


class PythonMainRunner:
    def __init__(self, main, game):
        self.main = main
        self.game = game

    def run_iter(self):
        self.main(self.game)


class EnemyRunner:
    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()