如何检测乌龟是否在 x 和 y 的半径内然后做些什么?

How to detect if turtle is in the radius of x & y and then do something?

目前,我正在尝试制作一款游戏,我希望在游戏中,如果角色在某个物体上,它会捡起它。这是我目前所拥有的:

import turtle
import time

default = turtle.clone()
scar = turtle.clone()

def pickupScar():
    if default.distance(-7,48) > 5.0:
        default.changeshape('defaultscar.gif')

wn = turtle.Screen()
wn.setup(500,500)
wn.bgpic('TrumpTowers.gif')
wn.register_shape('default.gif')
wn.register_shape('scar.gif')
wn.register_shape('defaultscar.gif')

turtle.hideturtle()
default.shape('default.gif')
scar.shape('scar.gif')

default.pu()
default.left(90)
default.bk(35)

scar.pu()
scar.left(90)
scar.fd(45)
scar.speed(-1)

default.ondrag(default.goto)

有谁知道我是如何制作 def pickupScar 的,因为我是 python & turtle 的新手。如果你知道我的游戏是关于什么的,请不要评判我,这是一个学校项目,我想不出任何游戏创意。

我不知道 turtle-graphics,但在现实世界中,我们使用 勾股定理 来确定两点之间的距离(对于二维表面)。

如果某个物体在 (x1, y1) 而另一个在 (x2, y2),则距离为

dist=sqrt((x1-x2)^2 + (y1-y2)^2)

因此,如果 dist <= R,乌龟(或其他)是 in R radius from desired point

因为我没有你的图片,也不知道你的游戏是关于什么的,下面是你描述的功能的一个例子。屏幕上是一个黑色的圆圈和粉红色的正方形。你可以拖动圆圈,如果你把它拖到正方形上,它会长出一个头和腿,变成一只乌龟。拖出正方形,又变回圆形:

from turtle import Screen, Turtle

def drag(x, y):
    default.ondrag(None)  # disable handler inside handler

    default.goto(x, y)

    if default.distance(scar) < 40:
        default.shape('turtle')
    elif default.shape() == 'turtle':
        default.shape('circle')

    default.ondrag(drag)

wn = Screen()
wn.setup(500, 500)

scar = Turtle('square', visible=False)
scar.shapesize(4)
scar.color('pink')
scar.penup()
scar.left(90)
scar.forward(50)
scar.showturtle()

default = Turtle('circle', visible=False)
default.shapesize(2)
default.speed('fastest')
default.penup()
default.left(90)
default.backward(50)
default.showturtle()

default.ondrag(drag)

wn.mainloop()