Untitled

mail@pastecode.io avatar
unknown
plain_text
10 days ago
3.8 kB
3
Indexable
Never
Here's a basic coding structure for an obstacle avoidance game using Python and the Pygame library. This example includes:

*Game Concept:*

- Player (Man) must avoid obstacles and reach the end.
- Multiple characters with unique abilities.
- Multiple maps.

*Code Structure:*
```
import pygame
import sys
import random

# Initialize Pygame
pygame.init()

# Screen dimensions
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Title
pygame.display.set_caption("Obstacle Avoider")

# Colors
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)

# Character classes
class Player:
    def __init__(self, x, y, ability):
        self.x = x
        self.y = y
        self.ability = ability
        self.speed = 5

    def move(self, dx, dy):
        self.x += dx * self.speed
        self.y += dy * self.speed

class Obstacle:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.size = 50

# Map classes
class Map:
    def __init__(self, width, height):
        self.width = width
        self.height = height
        self.obstacles = []

    def generate_obstacles(self):
        for _ in range(10):
            x = random.randint(0, self.width - 50)
            y = random.randint(0, self.height - 50)
            self.obstacles.append(Obstacle(x, y))

# Game class
class Game:
    def __init__(self):
        self.player = Player(100, 100, "Speed Boost")
        self.map = Map(SCREEN_WIDTH, SCREEN_HEIGHT)
        self.map.generate_obstacles()

    def handle_events(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()

        keys = pygame.key.get_pressed()
        if keys[pygame.K_UP]:
            self.player.move(0, -1)
        if keys[pygame.K_DOWN]:
            self.player.move(0, 1)
        if keys[pygame.K_LEFT]:
            self.player.move(-1, 0)
        if keys[pygame.K_RIGHT]:
            self.player.move(1, 0)

    def update(self):
        # Check collisions with obstacles
        for obstacle in self.map.obstacles:
            if (self.player.x < obstacle.x + obstacle.size and
                self.player.x + 50 > obstacle.x and
                self.player.y < obstacle.y + obstacle.size and
                self.player.y + 50 > obstacle.y):
                print("Game Over")

    def draw(self):
        screen.fill(WHITE)
        pygame.draw.rect(screen, RED, (self.player.x, self.player.y, 50, 50))
        for obstacle in self.map.obstacles:
            pygame.draw.rect(screen, GREEN, (obstacle.x, obstacle.y, obstacle.size, obstacle.size))
        pygame.display.flip()

# Create game instance
game = Game()

# Main loop
while True:
    game.handle_events()
    game.update()
    game.draw()
    pygame.time.Clock().tick(60)
```
*Character Abilities:*

- Speed Boost (default): Increases player speed.
- Shield: Makes player invulnerable for 5 seconds.
- Jump: Allows player to jump over obstacles.

*Maps:*

- Map 1: Basic map with random obstacles.
- Map 2: Maze-like map with narrow paths.
- Map 3: Map with moving obstacles.

*To-Do:*

- Implement character abilities.
- Create additional maps.
- Add scorekeeping and game over screen.
- Improve graphics and sound effects.

This is a basic structure to get you started. You can expand upon this code to include more features and polish.

*Commit Message:*
"Initial commit: Basic obstacle avoidance game structure with Pygame"

*API Documentation:*

- `Player` class: `__init__(x, y, ability)`, `move(dx, dy)`
- `Obstacle` class: `__init__(x, y)`
- `Map` class: `__init__(width, height)`, `generate_obstacles()`
- `Game` class: `__init__()`, `handle_events()`, `update()`, `draw()`
Leave a Comment