乌龟定义对我来说看起来不错,但不起作用
turtle definition looks ok to me but doesn't work
目前,我正在尝试制作一款游戏,我希望在游戏中,如果角色在某个物体上,它会捡起它。这是我目前所拥有的:
import turtle
import time
default = turtle.clone()
scar = turtle.clone()
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')
def drag(x, y):
default.ondrag(None) # disable handler inside handler
default.goto(x, y)
if default.distance(scar) < 40:
default.shape('defaultscar.gif')
elif default.shape() == 'turtle':
default.shape('circle')
default.ondrag(drag)
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)
有谁知道我会如何解决这个问题,因为它对我来说看起来不错,但实际上不起作用!
我在您的代码中发现了三个问题。首先,你在你没有真正使用的乌龟上调用 hideturtle()
:
turtle.hideturtle()
这被应用于不应该在游戏中的默认海龟。它只会出现并妨碍您,因为您这样做了:
default = turtle.clone()
scar = turtle.clone()
而不是:
default = turtle.Turtle()
scar = turtle.Turtle()
speed()
方法无法识别参数 -1:
scar.speed(-1)
如果参数无效,它将设置为不同的值。
最后,在您可能遇到问题的地方,您包含了 drag(x, y)
的定义,但是当需要设置处理程序时,您设置了错误功能:
default.ondrag(default.goto)
应该是:
default.ondrag(drag)
目前,我正在尝试制作一款游戏,我希望在游戏中,如果角色在某个物体上,它会捡起它。这是我目前所拥有的:
import turtle
import time
default = turtle.clone()
scar = turtle.clone()
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')
def drag(x, y):
default.ondrag(None) # disable handler inside handler
default.goto(x, y)
if default.distance(scar) < 40:
default.shape('defaultscar.gif')
elif default.shape() == 'turtle':
default.shape('circle')
default.ondrag(drag)
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)
有谁知道我会如何解决这个问题,因为它对我来说看起来不错,但实际上不起作用!
我在您的代码中发现了三个问题。首先,你在你没有真正使用的乌龟上调用 hideturtle()
:
turtle.hideturtle()
这被应用于不应该在游戏中的默认海龟。它只会出现并妨碍您,因为您这样做了:
default = turtle.clone()
scar = turtle.clone()
而不是:
default = turtle.Turtle()
scar = turtle.Turtle()
speed()
方法无法识别参数 -1:
scar.speed(-1)
如果参数无效,它将设置为不同的值。
最后,在您可能遇到问题的地方,您包含了 drag(x, y)
default.ondrag(default.goto)
应该是:
default.ondrag(drag)