""" Reads user input and does actions when game play is on. """ import pygame from stats import Stats class Gameplay: """ Logic of the playfield """ def __init__( self, player = None, field = None, status = None, enemies = None): self.status = status self.player = player self.field = field self.field = enemies def fire(self): if self.player.fire_lazer(): field.kill_if_not_colliding(enemies.sprites()) if Stats.lose_life(): return True return Stats.percent < 20 def quit(self): Stats.lives = 0 return True def step(self): """ Processes events for the step (frame) """ for event in pygame.event.get(): match event.type: case pygame.MOUSEMOTION: self.player.set_position(pygame.mouse.get_pos()) case pygame.MOUSEBUTTONDOWN: self.player.set_position(pygame.mouse.get_pos()) if event.button == 1: if self.fire(): return True if event.button == 3: self.player.set_direction() case pygame.KEYDOWN: match event.key: case pygame.K_ESCAPE | pygame.K_q: return self.quit() case pygame.K_SPACE: if self.fire(): return True case pygame.QUIT: return self.quit() return False