def click_event(self, event: pyasge.ClickEvent) -> None: bounds = self.exit_button.sprite.getWorldBounds() cursor_pos = pyasge.Point2D(event.x, event.y) if bounds.v1.x <= cursor_pos.x <= bounds.v2.x: if bounds.v1.y <= cursor_pos.y <= bounds.v3.y: self.exit_button.clicked = True
def __init__(self, data: GameData) -> None: super().__init__(data) self.id = GameStateID.GAME_OVER self.user_clicked = False self.text = pyasge.Text(self.gamedata.font, "Game\nOver") self.text.position = pyasge.Point2D(150, 300) self.text.colour = pyasge.COLOURS.AQUA self.text.colour = pyasge.Colour(0, 0, 1) self.text.colour = [0, 1, 0] self.text.colour = (1, 0, 1) self.exit_button = GameObject("/data/images/menu_buttons.png") self.exit_button.sprite.z_order = 0 self.exit_button.sprite.src_rect = [194, 400, 613, 203] self.exit_button.sprite.x = 50 self.exit_button.sprite.y = 600 self.exit_button.sprite.width = 500 self.exit_button.sprite.height = 200 self.exit_button.clicked = False self.mouse_cursor = GameObject("/data/images/black_cursor.png") self.mouse_cursor.sprite.z_order = 5 self.mouse_cursor.sprite.src_rect = [36, 35, 47, 42] self.mouse_cursor.sprite.height = 42 self.mouse_cursor.sprite.width = 47 cursor_pos = self.gamedata.inputs.getCursorPos() self.mouse_cursor.sprite.x = cursor_pos.x self.mouse_cursor.sprite.y = cursor_pos.y self.gamedata.inputs.setCursorMode(pyasge.CursorMode.HIDDEN) self.move_handle = self.gamedata.inputs.addCallback( pyasge.EventType.E_MOUSE_MOVE, self.move_event) self.click_handle = self.gamedata.inputs.addCallback( pyasge.EventType.E_MOUSE_CLICK, self.click_event)
def __init__(self, settings): pyasge.ASGEGame.__init__(self, settings) """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") """change text position""" self.text.position = pyasge.Point2D(50, 200) self.text.position = [50, 200] self.text.position = (50, 200) self.text.position.x = 50 self.text.position.y = 200 """change text colour""" self.text.colour = pyasge.COLOURS.AQUA self.text.colour = pyasge.Colour(0, 0, 1) self.text.colour = [0, 1, 0] self.text.colour = (1, 0, 1) """pixel distance checks""" print(self.font.pxWide("c", 1)) print(self.font.pxWide("cat", 1)) """bounding box checks""" print(self.text.local_bounds) print(self.text.world_bounds) """bounding box checks""" self.text.opacity = 0.0 self.text.scale = 0.75
def __init__(self, settings): pyasge.ASGEGame.__init__(self, settings) self.camera = pyasge.Camera(1024, 768) self.camera.lookAt(pyasge.Point2D(0, 0)) self.bg = pyasge.Sprite() self.bg.loadTexture("/data/images/background.png") self.bg.z_order = -10 self.bg.x = -750 self.bg.y = -500 self.sprite = pyasge.Sprite() self.sprite.loadTexture("/data/images/character_zombie_idle.png") self.inputs.addCallback(pyasge.EventType.E_KEY, self.input) """load font and create text instance""" self.font = self.renderer.loadFont("/data/fonts/kenvector_future.ttf", 40) self.text = pyasge.Text(self.font, "[BRAINS]") self.ui_text = pyasge.Text(self.font, "Lives: XXX") self.ui_text.position = [1020 - self.ui_text.width, 35] self.ui_text.colour = pyasge.COLOURS.CHOCOLATE """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, pyasge.KEYS.KEY_EQUAL: False, pyasge.KEYS.KEY_MINUS: False, }
def __init__(self, texture): self.clicked = None self.sprite = pyasge.Sprite() self.sprite.loadTexture(texture) self.velocity = pyasge.Point2D(0, 0) self.sprite.setMagFilter(pyasge.MagFilter.LINEAR) self.colour = pyasge.Colour(0, 0, 0)