import pygame from sys import exit pygame.init() GAME_WIDTH = 888 GAME_HEIGHT = 540 screen = pygame.display.set_mode((GAME_WIDTH, GAME_HEIGHT)) pygame.display.set_caption("Mukodik") clock = pygame.time.Clock() state = "menu" menu_background = pygame.image.load("TITLESCREEN.png").convert() new_game = pygame.image.load("NEW GAME.png").convert_alpha() con = pygame.image.load("CONTINUE.png").convert_alpha() reset = pygame.image.load("RESET.png").convert_alpha() save = pygame.image.load("SAVE.png").convert_alpha() settings = pygame.image.load("SETTINGS.png").convert_alpha() quit_btn = pygame.image.load("QUIT.png").convert_alpha() # LEVELS level_one = pygame.image.load("levelONE_FORMATTED.png").convert() level_two = pygame.image.load("levelTWO_FORMATTED.png").convert() current_level = level_one karakter_bal = pygame.image.load("charpixel_left.png").convert_alpha() karakter_jobb = pygame.image.load("charpixel_rightside.png").convert_alpha() new_game = pygame.transform.smoothscale(new_game, (160, 50)) con = pygame.transform.smoothscale(con, (160, 50)) reset = pygame.transform.smoothscale(reset, (160, 50)) save = pygame.transform.smoothscale(save, (160, 50)) settings = pygame.transform.smoothscale(settings, (160, 50)) quit_btn = pygame.transform.smoothscale(quit_btn, (160, 50)) karakter_jobb = pygame.transform.smoothscale(karakter_jobb, (160, 160)) karakter_bal = pygame.transform.smoothscale(karakter_bal, (160, 160)) new_game_rect = new_game.get_rect(center=(460, 180)) continue_rect = con.get_rect(center=(455, 230)) reset_rect = reset.get_rect(center=(455, 280)) save_rect = save.get_rect(center=(455, 330)) settings_rect = settings.get_rect(center=(455, 380)) quit_rect = quit_btn.get_rect(center=(455, 430)) # SCALE LEVEL def load_level(level_surface): rect = level_surface.get_rect() level_scaled = pygame.transform.scale(level_surface, (rect.width, GAME_HEIGHT)) return level_scaled, level_scaled.get_rect() level, level_rect = load_level(current_level) KARAKTER_SPEED = 5 kamera_x = 0 kamera_y = 0 current_sprite = karakter_jobb karakter_rect = karakter_jobb.get_rect() karakter_x = 200 karakter_y = level_rect.height - karakter_rect.height while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit() if state == "menu": if event.type == pygame.MOUSEBUTTONDOWN: if new_game_rect.collidepoint(event.pos): state = "game" current_level = level_one level, level_rect = load_level(current_level) karakter_x = 200 karakter_y = level_rect.height - karakter_rect.height kamera_x = 0 kamera_y = 0 keys = pygame.key.get_pressed() if state == "game": if keys[pygame.K_d]: karakter_x += KARAKTER_SPEED current_sprite = karakter_jobb if keys[pygame.K_a]: karakter_x -= KARAKTER_SPEED current_sprite = karakter_bal karakter_x = max(0, min(karakter_x, level_rect.width - karakter_rect.width)) karakter_y = max(0, min(karakter_y, level_rect.height - karakter_rect.height)) if karakter_x <= 0: current_level = level_two level, level_rect = load_level(current_level) karakter_x = level_rect.width - karakter_rect.width - 5 elif karakter_x >= level_rect.width - karakter_rect.width: current_level = level_two level, level_rect = load_level(current_level) karakter_x = 5 kamera_x = karakter_x + karakter_rect.width // 2 - GAME_WIDTH // 2 kamera_y = karakter_y + karakter_rect.height // 2 - GAME_HEIGHT // 2 kamera_x = max(0, min(kamera_x, level_rect.width - GAME_WIDTH)) kamera_y = max(0, min(kamera_y, level_rect.height - GAME_HEIGHT)) if state == "menu": screen.blit(menu_background, (0, 0)) screen.blit(new_game, new_game_rect) screen.blit(reset, reset_rect) screen.blit(save, save_rect) screen.blit(settings, settings_rect) screen.blit(quit_btn, quit_rect) screen.blit(con, continue_rect) elif state == "game": screen.fill((0, 0, 0)) screen.blit(level, (-kamera_x, -kamera_y)) karakter_screen_x = karakter_x - kamera_x karakter_screen_y = karakter_y - kamera_y screen.blit(current_sprite, (karakter_screen_x, karakter_screen_y)) pygame.display.flip() clock.tick(60)