Python龟图形没有onkey属性

时间:2014-10-31 03:31:33

标签: python turtle-graphics

这有什么问题,因为我之前有过工作......?

[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'属性

1 个答案:

答案 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方法只能由海龟模块调用,而不能由其类调用。

希望这有帮助!