Untitled

 avatar
unknown
plain_text
a year ago
2.1 kB
3
Indexable
import pygame
import random
import os

# Initialize Pygame
pygame.init()

# Set up some constants
WIDTH = 800
HEIGHT = 600
BIRD_SIZE = 40
PIPE_WIDTH = 100
PIPE_GAP = 200
PIPE_SPEED = 5

# Set up the display
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption('Flappy Bird')

# Set up the clock
clock = pygame.time.Clock()

# Set up the bird
bird_surface = pygame.image.load('bird.png').convert()
bird_rect = bird_surface.get_rect(center=(100, 300))

# Set up the pipes
pipe_surface = pygame.image.load('pipe.png').convert()
pipe_list = []

# Set up the score
score = 0
font = pygame.font.Font(None, 36)

# Game loop
running = True
while running:
    # Event handling
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                bird_rect.y -= 50

    # Bird movement
    bird_rect.y += 5
    if bird_rect.y > HEIGHT - BIRD_SIZE:
        bird_rect.y = HEIGHT - BIRD_SIZE

    # Add new pipes
    if len(pipe_list) < 5:
        new_pipe = pygame.Rect(WIDTH, random.randint(0, HEIGHT-PIPE_GAP-PIPE_WIDTH), PIPE_WIDTH, PIPE_GAP)
        pipe_list.append(new_pipe)

    # Move and draw pipes
    for pipe in pipe_list:
        pipe.x -= PIPE_SPEED
        if pipe.x < -PIPE_WIDTH:
            pipe_list.remove(pipe)
        pygame.draw.rect(screen, (0, 255, 0), pipe)

    # Check for collisions
    for pipe in pipe_list:
        if bird_rect.colliderect(pipe):
            running = False

    # Check for score
    for pipe in pipe_list:
        if bird_rect.x > pipe.x and bird_rect.x < pipe.x + PIPE_WIDTH:
            score += 1

    # Draw the bird
    screen.blit(bird_surface, bird_rect)

    # Draw the score
    score_surface = font.render(f'Score: {score}', True, (255, 255, 255))
    score_rect = score_surface.get_rect(center=(WIDTH // 2, 50))
    screen.blit(score_surface, score_rect)

    # Update the display
    pygame.display.flip()
    clock.tick(60)

# Quit Pygame
pygame.quit()
Editor is loading...
Leave a Comment