def movementMicrothread(): while True: if inputf.keyboard[inputf.key.UP]: sprite.position.y += 10 * logic.delta() if inputf.mouse.left: sprite.position.x += 10 * logic.delta() #else: # sprite.position.x -= 10 * logic.delta() if inputf.mouse.inRect(sprite): sprite.position.y -= 10 * logic.delta() microthreads.schedule()
def SpriteSupermeCommander(): """ The SpriteSupermeCommander function, one of YAPGU default microthreads, which updates all registered Sprite objects - sets actual animation frame, prepares internal rendering for drawing sprite etc. Notes: - Nope, I won't change its name to some wimpy "SpriteManager". (szx) - Screw your threads. (szx) Maintainer: szx Last update date: 22.01.2013 """ while True: #TODO Something. dt = logic.delta() for sprite in _sprites: if not sprite.paused: if sprite.frames > 1: sprite.elapsed += dt if sprite.elapsed > 1.0 / sprite.fps: sprite.frame += 1 if sprite.frame >= sprite.frames: if not sprite.looped: sprite.paused = True else: sprite.frame = 0 sprite.elapsed -= 1.0 / sprite.fps sprite._sprite = pyglet.sprite.Sprite(sprite._imageTexSeq[sprite.frame]) sprite._sprite.position = (sprite.position.x,sprite.position.y) sprite._sprite.rotation = sprite.rotation schedule()