如何检测乌龟是否在 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()
目前,我正在尝试制作一款游戏,我希望在游戏中,如果角色在某个物体上,它会捡起它。这是我目前所拥有的:
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()