Oliver Hamilton the sigma god
@oliverhamiltont Tasks: 16
๐ ๏ธ 1 tool
๐ 32 karma
Apprentice
Joined: August 2024
Follow
Oliver Hamilton the sigma god's tools
-
1472230Released 1y ago100% FreeHere's a basic outline for a troll platformer game using Python and the Pygame library: **Game Concept:** The player controls a troll who must navigate through a series of levels, avoiding obstacles and enemies to reach the treasure at the end of each level. The twist? The troll has a limited amount of "troll energy" that depletes over time, and the player must collect "troll food" (e.g. fish, mushrooms) to replenish it. **Game Code:** ```python import pygame import sys # Initialize Pygame pygame.init() # Set up the game window SCREEN_WIDTH = 640 SCREEN_HEIGHT = 480 screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) # Set up the title of the window pygame.display.set_caption("Troll Platformer") # Define some colors WHITE = (255, 255, 255) BLACK = (0, 0, 0) GREEN = (0, 255, 0) # Define the troll character TROLL_WIDTH = 40 TROLL_HEIGHT = 40 troll_x = SCREEN_WIDTH / 2 troll_y = SCREEN_HEIGHT / 2 troll_energy = 100 troll_speed = 5 # Define the troll food FOOD_WIDTH = 20 FOOD_HEIGHT = 20 food_x = SCREEN_WIDTH / 2 food_y = SCREEN_HEIGHT / 2 food_timer = 0 # Define the levels levels = [ # Level 1 { "platforms": [ {"x": 0, "y": SCREEN_HEIGHT - 50, "width": SCREEN_WIDTH, "height": 50}, {"x": SCREEN_WIDTH / 2, "y": SCREEN_HEIGHT - 100, "width": 100, "height": 20}, ], "enemies": [ {"x": SCREEN_WIDTH / 2, "y": SCREEN_HEIGHT - 150, "width": 20, "height": 20}, ], "treasure": {"x": SCREEN_WIDTH - 50, "y": SCREEN_HEIGHT - 50, "width": 20, "height": 20}, }, # Level 2 { "platforms": [ {"x": 0, "y": SCREEN_HEIGHT - 50, "width": SCREEN_WIDTH, "height": 50}, {"x": SCREEN_WIDTH / 2, "y": SCREEN_HEIGHT - 150, "width": 100, "height": 20}, {"x": SCREEN_WIDTH - 100, "y": SCREEN_HEIGHT - 100, "width": 50, "height": 20}, ], "enemies": [ {"x": SCREEN_WIDTH / 2, "y": SCREEN_HEIGHT - 200, "width": 20, "height": 20}, {"x": SCREEN_WIDTH - 50, "y": SCREEN_HEIGHT - 150, "width": 20, "height": 20}, ], "treasure": {"x": SCREEN_WIDTH - 50, "y": SCREEN_HEIGHT - 50, "width": 20, "height": 20}, }, # ... ] current_level = 0 # Game loop while True: # Handle events for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # Move the troll keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: troll_x -= troll_speed if keys[pygame.K_RIGHT]: troll_x += troll_speed if keys[pygame.K_UP]: troll_y -= troll_speed if keys[pygame.K_DOWN]: troll_y += troll_speed # Check for collision with platforms for platform in levels[current_level]["platforms"]: if troll_x + TROLL_WIDTH > platform["x"] and troll_x < platform["x"] + platform["width"] and troll_y + TROLL_HEIGHT > platform["y"] and troll_y < platform["y"] + platform["height"]: troll_y = platform["y"] - TROLL_HEIGHT # Check for collision with enemies for enemy in levels[current_level]["enemies"]: if troll_x + TROLL_WIDTH > enemy["x"] and troll_x < enemy["x"] + enemy["width"] and troll_y + TROLL_HEIGHT > enemy["y"] and troll_y < enemy["y"] + enemy["height"]: troll_energy -= 20 # Check for collision with food if food_timer == 0: food_timer = 100 food_x = random.randint(0, SCREEN_WIDTH - FOOD_WIDTH) food_y = random.randint(0, SCREEN_HEIGHT - FOOD_HEIGHT) food_timer -= 1 if troll_x + TROLL_WIDTH > food_x and troll_x < food_x + FOOD_WIDTH and troll_y + TROLL_HEIGHT > food_y and troll_y < food_y + FOOD_HEIGHT: troll_energy += 20 food_timer = 0 # Check for collision with treasure if troll_x + TROLL_WIDTH > levels[current_level]["treasure"]["x"] and troll_x < levels[current_level]["treasure"]["x"] + levels[current_level]["treasure"]["width"] and troll_y + TROLL_HEIGHT > levels[current_level]["treasure"]["y"] and troll_y < levels[current_level]["treasure"]["y"] + levels[current_level]["treasure"]["height"]: current_level += 1 troll_x = SCREEN_WIDTH / 2 troll_y = SCREEN_HEIGHT / 2 # Draw everything screen.fill(BLACK) pygame.draw.rect(screen, GREEN, (troll_x, troll_y, TROLL_WIDTH, TROLL_HEIGHT)) for platform in levels[current_level]["platforms"]: pygame.draw.rect(screen, WHITE, (platform["x"], platform["y"], platform["width"], platform["height"])) for enemy in levels[current_level]["enemies"]: pygame.draw.rect(screen, WHITE, (enemy["x"], enemy["y"], enemy["width"], enemy["height"])) if food_timer > 0: pygame.draw.rect(screen, WHITE, (food_x, food_y, FOOD_WIDTH, FOOD_HEIGHT)) pygame.draw.rect(screen, WHITE, (levels[current_level]["treasure"]["x"], levels[current_level]["treasure"]["y"], levels[current_level]["treasure"]["width"], levels[current_level]["treasure"]["height"])) pygame.display.flip() # Update the troll energy troll_energy -= 1 if troll_energy <= 0: print("Game Over!") break # Cap the framerate pygame.time.delay(1000 / 60)
