Ich hab sicherheitshalber mal die High score Funktion auskommentiert, damit ihr keine Probleme mit der Datei habt.
Ich hoffe, dass ihr mein Problem lösen könnt!
Der Fehler liegt glaube ich im Bereich um Zeile 70
Code: Alles auswählen
import pygame
import sys
pygame.init()
clock = pygame.time.Clock()
# Definieren von Screen
db = 600
dh = 600
screen = pygame.display.set_mode((db, dh))
pygame.display.set_caption("Pong the Game")
# Definieren von Spieler
x = 300
y = 500
breite = 100
hohe = 25
speed = 7
# Definieren von Ball
xball = 300
yball = 100
ball_speed = 5
score = 0
def restart():
global xball, yball, score
xball = 300
yball = 100
score = 0
dark_white = (200, 200, 200)
myFont = pygame.font.SysFont("Comic Sans MS", 30)
#Highscore auslesen
def get_high():
"""with open("highscore") as file:
for line in file:
return line"""
return "10"
# Hauptschleife
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
gedrueckt = pygame.key.get_pressed()
if gedrueckt[pygame.K_RIGHT]:
x += speed
if gedrueckt[pygame.K_LEFT]:
x -= speed
if x < 0:
x = 0
if x > db - breite:
x = db - breite
yball += ball_speed
screen.fill((0, 0, 34))
player = pygame.draw.rect(screen, (255, 255, 255), (x, y, breite, hohe))
ball = pygame.draw.circle(screen, (255, 255, 255), (xball, yball,), 17)
if ball.colliderect(player):
ball_speed *= -1
score += 1 # todo Fehler Beheben: Wenn man den Ball von der Seite aus Berührt, dann bleibt er am Ball kleben
if score > int(get_high()):
"""with open ("highscore", "w") as file:
file.write(str(score))"""
pass
if ball.top <= 0:
ball_speed *= -1
if ball.bottom >= dh:
restart()
score_show = myFont.render("Score: " + str(score), 1, dark_white)
highest_score = myFont.render("Highscore: " + get_high(), 1, dark_white)
screen.blit(score_show, (db/2, dh/6))
screen.blit(highest_score, (db / 2, dh / 3))
pygame.display.update()
clock.tick(60)