Untitled

 avatar
unknown
plain_text
3 months ago
2.6 kB
3
Indexable
python flappy_bird.pyimport pygame
import random

# Initialize Pygame
pygame.init()

# Screen dimensions
SCREEN_WIDTH = 400
SCREEN_HEIGHT = 600

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

# Create the screen
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Flappy Bird")

# Clock for controlling the frame rate
clock = pygame.time.Clock()

# Load images
bird_img = pygame.image.load("bird.png")  # Replace with your bird image
pipe_img = pygame.image.load("pipe.png")  # Replace with your pipe image
background_img = pygame.image.load("background.png")  # Replace with your background image

# Scale images
bird_img = pygame.transform.scale(bird_img, (40, 40))
pipe_img = pygame.transform.scale(pipe_img, (60, 300))

# Bird properties
bird_x = 50
bird_y = SCREEN_HEIGHT // 2
bird_velocity = 0
gravity = 0.5

# Pipe properties
pipe_width = 60
pipe_height = 300
pipe_gap = 150
pipe_x = SCREEN_WIDTH
pipe_y = random.randint(200, 400)

# Score
score = 0
font = pygame.font.SysFont("Arial", 30)

# Game loop
running = True
while running:
    # Handle events
    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_velocity = -8  # Flap the bird

    # Update bird position
    bird_velocity += gravity
    bird_y += bird_velocity

    # Update pipe position
    pipe_x -= 5
    if pipe_x < -pipe_width:
        pipe_x = SCREEN_WIDTH
        pipe_y = random.randint(200, 400)
        score += 1

    # Collision detection
    bird_rect = pygame.Rect(bird_x, bird_y, 40, 40)
    pipe_rect_top = pygame.Rect(pipe_x, pipe_y - pipe_height - pipe_gap, pipe_width, pipe_height)
    pipe_rect_bottom = pygame.Rect(pipe_x, pipe_y, pipe_width, pipe_height)

    if bird_rect.colliderect(pipe_rect_top) or bird_rect.colliderect(pipe_rect_bottom) or bird_y > SCREEN_HEIGHT:
        print("Game Over! Score:", score)
        running = False

    # Draw everything
    screen.blit(background_img, (0, 0))  # Draw background
    screen.blit(bird_img, (bird_x, bird_y))  # Draw bird
    screen.blit(pipe_img, (pipe_x, pipe_y - pipe_height - pipe_gap))  # Draw top pipe
    screen.blit(pipe_img, (pipe_x, pipe_y))  # Draw bottom pipe

    # Draw score
    score_text = font.render(f"Score: {score}", True, WHITE)
    screen.blit(score_text, (10, 10))

    # Update the display
    pygame.display.update()

    # Cap the frame rate
    clock.tick(30)

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