Answer the question
In order to leave comments, you need to log in
How to implement position finding in Python Turtle?
I don’t know how to implement finding the location of an object in Python Turtle
(I want to do ping-pong)
I understand that the code is bad)
from tkinter import *
from turtle import *
import random as ran
window = Tk()
window.title("Ping-pong")
window.geometry("2048x1536")
screen = Canvas(window, width = 2048, height = 1536)
screen.pack()
turtle = TurtleScreen(screen)
point1 = 0
point2 = 0
speed = 10
speedx = 15
speedy = 15
x = 0
y = 0
i = 0
x1 = -973
y1 = 300
y2 = -300
x11 = 973
y11 = 300
y12 = -300
l = Label(screen, text = str(point1), font = "Bold 31", background = "white")
l.place(x = 730, y = 50)
l1 = Label(screen, text = str(point2), font = "Bold 31", background = "white")
l1.place(x = 1230, y = 50)
tur = RawTurtle(turtle)
tur1 = RawTurtle(turtle)
tur2 = RawTurtle(turtle)
tur3 = RawTurtle(turtle)
tur.speed(0)
tur1.speed(0)
tur2.speed(0)
tur3.speed(0)
tur.up()
tur.goto(0, 768)
tur.width(7)
tur.down()
tur.goto(0,-768)
tur1.shape("circle")
tur1.shapesize(3)
tur1.penup()
tur2.up()
tur2.goto(x1, y1)
tur2.down()
tur2.width(27)
tur2.goto(x1, y2)
tur3.up()
tur3.goto(x11, y1)
tur3.down()
tur3.width(27)
tur3.goto(x11, y12)
def up():
global x1, y1, y2, tur2, speed
tur2.reset()
tur2.speed(7)
y1 = y1 + int(speed)
y2 = y2 + int(speed)
tur2.up()
tur2.goto(x1, y1 + int(speed))
tur2.down()
tur2.width(27)
tur2.goto(x1, y2)
return y1, y2
def down():
global x1, y1, y2, tur2, speed
tur2.reset()
tur2.speed(7)
y1 = y1 - int(speed)
y2 = y2 - int(speed)
tur2.up()
tur2.goto(x1, y1 - int(speed))
tur2.down()
tur2.width(27)
tur2.goto(x1, y2 - int(speed))
return y1, y2
def up1():
global x11, y11, y12, tur3, speed
tur3.reset()
tur3.speed(7)
y11 = y1 + int(speed)
y12 = y2 + int(speed)
tur3.up()
tur3.goto(x11, y11 + int(speed))
tur3.down()
tur3.width(27)
tur3.goto(x11, y12 + int(speed))
return y11, y12
def down1():
global x11, y11, y12, tur3, speed
tur3.reset()
tur3.speed(7)
y11= y1 - int(speed)
y12 = y2 - int(speed)
tur3.up()
tur3.goto(x11, y1 - int(speed))
tur3.down()
tur3.width(27)
tur3.goto(x11, y12 - int(speed))
return y11, y12
while True:
if i == 0:
tur1.hideturtle()
tur1.speed(0)
tur1.goto(0, ran.randint(-730, 730))
i = i + 1
else:
tur1.showturtle()
tur1.speed(10)
x, y = tur1.position()
if x == x1 and y == range(int(up()), int(up())):
speedx = -speedx
elif y == range(int(up1()), int(up1())) and x == x11:
speedy = -speedy
tur1.goto(x + speedx, y + speedy)
screen.bind("<w>", up())
screen.bind("<s>", down())
screen.bind("<o>", up1())
screen.bind("<l>", down1())
window.mainloop()
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question