Example Game

# -*- coding: utf-8 -*-
import pyasge


class MyASGEGame(pyasge.ASGEGame):
    def __init__(self, settings):
        pyasge.ASGEGame.__init__(self, settings)

        """register key handler for key press events"""
        self.inputs.addCallback(pyasge.EventType.E_KEY, self.input)

        """create a new sprite to store the render texture"""
        self.sprite = pyasge.Sprite()
        self.sprite.loadTexture("/data/sprite.png")
        self.sprite.width = 200
        self.sprite.height = 200

        """load font and create text instance"""
        self.font = self.renderer.loadFont("/data/fonts/kenvector_future.ttf", 40)
        self.text = pyasge.Text(self.font, "Hello World")
        self.text.position = pyasge.Point2D(200, 200)

        """track key states"""
        self.keys = {
            pyasge.KEYS.KEY_A: False,
            pyasge.KEYS.KEY_D: False,
            pyasge.KEYS.KEY_W: False,
            pyasge.KEYS.KEY_S: False,
        }

    def input(self, event: pyasge.KeyEvent) -> None:
        if event.key is not pyasge.KEYS.KEY_REPEATED:
            self.keys[event.key] = event action is pyasge.KEYS.KEY_PRESSED

    def update(self, game_time: pyasge.GameTime) -> None:
        pass

    def render(self, game_time: pyasge.GameTime) -> None:
        self.renderer.render(self.sprite)
        self.renderer.render(self.text)


def main():
    settings = pyasge.GameSettings()
    settings.window_width = 1024
    settings.window_height = 768
    game = MyASGEGame(settings)
    game.run()


if __name__ == "__main__":
    main()