import pygame SCREEN_WIDTH = 640 SCREEN_HEIGHT = 480 class Game: def __init__(self): pygame.init() pygame.display.set_caption("School Game") self.clock = pygame.Clock() self.screen: pygame.Surface = pygame.display.set_mode( (SCREEN_WIDTH, SCREEN_HEIGHT) ) self.display: pygame.Surface = pygame.Surface( (self.screen.get_width() // 2, self.screen.get_height() // 2) ) self.movement: list[bool] = [False, False, False, False] self.running: bool = True self.dt: int = 0 self.player_pos = pygame.Vector2(self.display.get_width() / 2, self.display.get_height() / 2) self.item_rect = pygame.Rect(60, 40, 10, 10) self.flashlight = 0 self.color_item = (0, 0, 0) #self.circle = pygame.geometry.Circle(self.player_pos[0], self.player_pos[1], 30) def run(self) -> None: while self.running: # Background self.display.fill((0, 0, 0, 0)) self.player_rect = pygame.Rect(self.player_pos[0]-10, self.player_pos[1]-10, 20, 20) # Event-Keys for event in pygame.event.get(): if event.type == pygame.QUIT: self.running = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: self.running = False # Player-Draw self.flashlight = pygame.draw.circle(self.display, (255, 255, 255, 0), self.player_pos, 30) pygame.draw.rect(self.display, self.color_item, self.item_rect) pygame.draw.rect(self.display, (255, 0, 0), self.player_rect) # Smooth Movement keys = pygame.key.get_pressed() if keys[pygame.K_w]: self.player_pos.y -= 300 * self.dt if keys[pygame.K_s]: self.player_pos.y += 300 * self.dt if keys[pygame.K_a]: self.player_pos.x -= 300 * self.dt if keys[pygame.K_d]: self.player_pos.x += 300 * self.dt if not self.flashlight.colliderect(self.item_rect): self.color_item = (0,0,0) else: self.color_item = (0, 0, 255) self.screen.blit( pygame.transform.scale(self.display, self.screen.get_size()) ) pygame.display.update() self.dt = self.clock.tick(60) / 3000 game = Game() game.run()