簡體   English   中英

烏龜的定義對我來說不錯,但不起作用

[英]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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM