Pygame Flappy Bird?

Ich habe den folgenden Python-Code mit Pygame programmiert. Bin aber noch ein absoluter Anfänger, daher ist zwischen "#copy start" und "#copy end" der Code von ChatGPT generiert. Die Pipes werden trotzdem nicht angezeigt, weiß jemad woran das liegt?

import pygame
import os
import random

pygame.init()
width = 1280
height = 720
screen = pygame.display.set_mode((width, height), pygame.RESIZABLE)
pygame.display.set_caption("Flappy Bird")
PIPE_WIDTH = 80
PIPE_GAP = 150
PIPE_SPEED = 5
flappyY = 360
score = 0
highscore = 0
pipes = []
pipe_timer = 1
if not os.path.exists("highscore.txt"):
    with open("highscore.txt", "w") as file:
        file.write(str(highscore))
with open("highscore.txt", "r") as rfile:
    highscore = int(rfile.read())

#copy start
class Pipe:
    def __init__(self):
        self.x = width
        self.height = random.randint(100, height - PIPE_GAP - 100)
        self.passed = False
    
    def move(self):
        self.x -= PIPE_SPEED

    def draw(self, screen):
        # Draw upper pipe
        pygame.draw.rect(screen, (0, 255, 0), (self.x, 0, PIPE_WIDTH, self.height))
        # Draw lower pipe
        pygame.draw.rect(screen, (0, 255, 0), (self.x, self.height + PIPE_GAP, PIPE_WIDTH, height - self.height - PIPE_GAP))
    
    def off_screen(self):
        return self.x + PIPE_WIDTH < 0
#copy end

running = True
while running:
    for event in pygame.event.get():
        keys = pygame.key.get_pressed()
        if event.type == pygame.QUIT:
            running = False
    if keys[pygame.K_SPACE]:
        if flappyY > -16:       
            flappyY -= 1
    if flappyY < 704:
        flappyY += 0.4
    if score > highscore:
        highscore = score

    #copy start
    if pipe_timer > 100:
            pipes.append(Pipe())
            pipe_timer = 0

    for pipe in pipes:
        pipe.move()
        pipe.draw(screen)

        pipes = [pipe for pipe in pipes if not pipe.off_screen()]

        pipe_timer += 1
    #copy end


    pygame.display.set_caption(f"Flappy Bird (Highscore: {highscore:.0f})")
    rect = pygame.Rect(640, flappyY, 32, 32)
    #print(flappyY)
    screen.fill((0, 180, 255))
    pygame.draw.rect(screen, "red" , rect)
    pygame.display.update()
pygame.quit()

Vielen Dank und LG

Code, Programmiersprache, Python, Python 3, Pygame, Flappy bird, VS Code, ChatGPT

Meistgelesene Beiträge zum Thema Flappy bird