so im following this tutorial and the game works just fine but when i close the window, it returns an error. it doesnt break the code, it just happens and i dont understand what the error is.
game.py:
from turtle import Screen, Turtle
from paddle import Paddle
from ball import Ball
from scoreboard import Scoreboard
import time
screen = Screen()
screen.setup(width=800, height=600)
screen.bgcolor("black")
screen.title("Pong")
screen.tracer(0)
r_paddle = Paddle((350, 0))
l_paddle = Paddle((-350, 0))
ball = Ball()
scoreboard = Scoreboard()
screen.listen()
screen.onkeypress(fun=r_paddle.up, key="Up")
screen.onkeypress(fun=r_paddle.down, key="Down")
screen.onkeypress(fun=l_paddle.up, key="w")
screen.onkeypress(fun=l_paddle.down, key="s")
run = True
while run:
time.sleep(ball.move_speed)
ball.move()
screen.update()
if ball.ycor() > 290 or ball.ycor() < -290:
ball.bounce_wall()
if ball.distance(r_paddle) < 55 and ball.xcor() > 320 and ball.x_move > 0:
ball.bounce_paddle()
if ball.distance(l_paddle) < 55 and ball.xcor() < -330 and ball.x_move < 0:
ball.bounce_paddle()
if ball.xcor() > 380:
ball.home()
ball.move_speed = 0.04
scoreboard.l_score += 1
ball.x_move *= -1
scoreboard.update()
if ball.xcor() < -380:
ball.home()
ball.move_speed = 0.04
scoreboard.r_score += 1
ball.x_move *= -1
scoreboard.update()
screen.exitonclick()
ball.py:
from turtle import Turtle
class Ball(Turtle):
def __init__(self):
super().__init__()
self.shape("circle")
self.penup()
self.color("white")
self.shapesize(stretch_wid=1.2)
self.x_move = 10
self.y_move = 10
self.move_speed = .04
def move(self):
new_x = self.xcor() + self.x_move
new_y = self.ycor() + self.y_move
self.goto(new_x, new_y)
def bounce_wall(self):
self.y_move *= -1
def bounce_paddle(self):
self.x_move *= -1
self.move_speed *= .9
paddle.py:
from turtle import Turtle, Screen
screen = Screen()
class Paddle(Turtle):
def __init__(self, cor):
super().__init__()
self.shape("square")
self.color("white")
self.penup()
self.speed("fastest")
self.shapesize(stretch_wid=5, stretch_len=1)
self.goto(cor)
def up(self):
new_y = self.ycor() + 20
self.goto(x=self.xcor(), y=new_y)
def down(self):
new_y = self.ycor() - 20
self.goto(x=self.xcor(), y=new_y)
scoreboard.py:
from turtle import Turtle
class Scoreboard(Turtle):
def __init__(self):
super().__init__()
self.color("white")
self.penup()
self.hideturtle()
self.r_score = 0
self.l_score = 0
self.update()
def update(self):
self.clear()
self.goto(-100, 150)
self.write(self.l_score, align="center", font=("Courier", 80, "bold"))
self.goto(100, 150)
self.write(self.r_score, align="center", font=("Courier", 80, "bold"))
this error did not occur before i made some edits to the code so i tried changing whatever didnt matter to the original code but it didnt work.
New contributor
Abtin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.