import pygame import sys class Player: def __init__(self): self.sprites_right = [pygame.image.load("Sprites/player/Sized_1_right.png"), pygame.image.load("Sprites/player/Sized_2_right.png"), pygame.image.load("Sprites/player/Sized_3_right.png"), pygame.image.load("Sprites/player/Sized_4_right.png"), pygame.image.load("Sprites/player/Sized_5_right.png"), pygame.image.load("Sprites/player/Sized_6_right.png"), pygame.image.load("Sprites/player/Sized_7_right.png"), pygame.image.load("Sprites/player/Sized_8_right.png")] self.sprites_left = [pygame.image.load("Sprites/player/Sized_1_left.png"), pygame.image.load("Sprites/player/Sized_2_left.png"), pygame.image.load("Sprites/player/Sized_3_left.png"), pygame.image.load("Sprites/player/Sized_4_left.png"), pygame.image.load("Sprites/player/Sized_5_left.png"), pygame.image.load("Sprites/player/Sized_6_left.png"), pygame.image.load("Sprites/player/Sized_7_left.png"), pygame.image.load("Sprites/player/Sized_8_left.png")] self.sprites_standing = [pygame.image.load("Sprites/player/Sized_test_standing.png")] self.current_direction = "standing" self.current_sprites = self.sprites_standing self.sprite_rect = self.sprites_right[0].get_rect() self.sprite_rect.x = 100 self.sprite_rect.y = 500 self.speed = 10 self.current_frame = 0 def update(self, keys): self.current_frame += 0.5 if keys[pygame.K_RIGHT]: self.current_direction = "right" self.current_sprites = self.sprites_right if self.sprite_rect.x < 1170: self.sprite_rect.x += self.speed if self.current_frame % 2 == self.current_frame //2: pygame.mixer.Sound("Music/Steps1.mp3").play() elif keys[pygame.K_LEFT]: self.current_direction = "left" self.current_sprites = self.sprites_left if self.sprite_rect.x > 10: self.sprite_rect.x -= self.speed if self.current_frame % 2 == self.current_frame //2: pygame.mixer.Sound("Music/Steps1.mp3").play() else: self.current_direction = "standing" self.current_sprites = self.sprites_standing if self.current_frame >= len(self.current_sprites): self.current_frame = 0 class Game: def __init__(self): pygame.init() self.screen_height = 720 self.screen_width = 1280 self.screen_caption = pygame.display.set_caption("Hell Circus") self.screen = pygame.display.set_mode((self.screen_width, self.screen_height)) # Fixing this line self.clock = pygame.time.Clock() self.running = True self.background_image = pygame.image.load("Sprites/Fon.png") self.background_rect = self.background_image.get_rect(center=[self.screen_width // 2, self.screen_height // 2]) self.player = Player() def handle_events(self): for event in pygame.event.get(): if event.type == pygame.QUIT: self.running = False pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: self.show_main_menu() def update(self, keys): self.player.update(keys) def draw(self): self.screen.fill((0, 0, 0)) self.screen.blit(self.background_image, [0, -90]) self.screen.blit(self.player.current_sprites[int(self.player.current_frame)], self.player.sprite_rect) pygame.display.flip() def show_main_menu(self): menu_active = True while menu_active: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.MOUSEBUTTONDOWN: mouse_pos = pygame.mouse.get_pos() if 540 <= mouse_pos[0] <= 740 and 255 <= mouse_pos[1] <= 305: menu_active = False break elif 540 <= mouse_pos[0] <= 740 and 355 <= mouse_pos[1] <= 405: pygame.quit() sys.exit() self.screen.fill((0, 0, 0)) self.screen.blit(self.background_image, [0, 0]) font = pygame.font.SysFont(None, 64) title_text = font.render("Hell Circus", True, (255, 255, 255)) self.screen.blit(title_text, (self.screen_width // 2 - title_text.get_width() // 2, 100)) pygame.draw.rect(self.screen, (0, 255, 0), (540, 255, 200, 50)) pygame.draw.rect(self.screen, (0, 0, 0), (540, 255, 200, 50), 3) play_text = font.render("Play", True, (255, 255, 255)) self.screen.blit(play_text, (self.screen_width // 2 - play_text.get_width() // 2, 260)) pygame.draw.rect(self.screen, (0, 255, 0), (540, 355, 200, 50)) pygame.draw.rect(self.screen, (0, 0, 0), (540, 355, 200, 50), 3) exit_text = font.render("Exit", True, (255, 255, 255)) self.screen.blit(exit_text, (self.screen_width // 2 - exit_text.get_width() // 2, 360)) pygame.display.flip() def run(self): self.show_main_menu() while self.running: keys = pygame.key.get_pressed() self.handle_events() self.update(keys) self.draw() self.clock.tick(60) if __name__ == "__main__": game = Game() game.run()