Python 如何检测海龟是否在x&;然后做点什么?

Python 如何检测海龟是否在x&;然后做点什么?,python,python-3.x,turtle-graphics,Python,Python 3.x,Turtle Graphics,目前,我正在尝试制作一个游戏,在游戏中我希望这样,如果角色位于一个对象的顶部,它会将其拾取。这就是我到目前为止所做的: import turtle import time default = turtle.clone() scar = turtle.clone() def pickupScar(): if default.distance(-7,48) > 5.0: default.changeshape('defaultscar.gif') wn = tur

目前,我正在尝试制作一个游戏,在游戏中我希望这样,如果角色位于一个对象的顶部,它会将其拾取。这就是我到目前为止所做的:

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皮卡,因为我是python&turtle的新手。如果你知道我的游戏是关于什么的,请不要评判我,这是一个学校项目,我想不出任何游戏点子。

我不知道
海龟图形
,但在现实世界中,为了确定两点之间的距离(对于2D曲面),我们使用毕达哥拉斯定理

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

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

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

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()
从海龟导入屏幕,海龟
def阻力(x,y):
default.ondrag(无)#禁用处理程序内部的处理程序
默认值。转到(x,y)
如果默认。距离(疤痕)<40:
default.shape('turtle')
elif default.shape()==“海龟”:
default.shape('圆')
default.ondrag(拖动)
wn=屏幕()
wn.设置(500500)
疤痕=乌龟('square',可见=假)
疤痕。形状(4)
疤痕。颜色(‘粉色’)
scar.penup()
伤疤,左(90)
伤疤向前(50)
刀疤
默认值=海龟('圆圈',可见=假)
默认值。形状大小(2)
默认速度(“最快”)
default.penup()
默认值。左(90)
默认值。向后(50)
default.showturtle()
default.ondrag(拖动)
wn.mainloop()

请详细说明您的问题,@MistxOli。因此,您有一个(x,y)坐标,您希望找到从海龟到这一点的半径,是吗?@Luanaufal这不是一个问题,我想知道如何检测海龟是否在x&y半径范围内,以及它是否要做什么。堆栈溢出用于特定的编程问题。这个问题很可能会被解决。但是,您似乎是一个新用户:
海龟
中有一个
距离
函数。如果需要轮询,您可能想查看
线程化
,但是
turtle
可能有一个内置的this@LuanNaufal不,我想让游戏检测海龟是否进入,比如说一组x y的10px半径。OP要求进行事件检测,而不仅仅是计算距离中心部分也应该是一个圆,所以半径是清晰的