这有什么问题,因为我之前有过工作......?
[CALCULATIONS ABOVE HERE]
projectile = turtle.Turtle()
# Default velocity speed
global velocity
velocity = 200
# Increase projectile velocity
def increase_velocity():
up += 5
velocity.up
# Decrease projectile velocity
def decrease_velocity():
down -= 5
velocity.down()
# Set key bindings
projectile.onkey(increase_velocity, "Right")
projectile.onkey(decrease_velocity, "Left")
AttributeError:'Turtle'对象没有'onkey'属性
答案 0 :(得分:0)
我自己解决了这个问题。
我不明白推理,但"射弹"即使射弹对象继承自Turtle对象,也不会继承乌龟模块中的所有方法。
为对象设置键绑定时,只需使用" onkey,"但是你必须在函数中调用对象的方法,迫使你在一个抛射类下制作你的方法。例如:
turtle2 = Turtle()
def move_forward():
turtle2.fd(50)
onkey(move_forward, "up")
这也可能是使用全局变量的问题。您可能希望将velocity设为类变量。
class projectile(Turtle):
velocity = 200
def increase_velocity():
up += 5
velocity.up
def decrease_velocity():
down -= 5
velocity.down()
onkey(projectile.increase_velocity, "Right")
onkey(projectile.decrease_velocity, "Left")
我所知道的是,onkey方法只能由海龟模块调用,而不能由其类调用。
希望这有帮助!