【问题标题】:Detecting Keypresses in the Turtle module in Python在 Python 中检测 Turtle 模块中的按键
【发布时间】:2021-01-25 20:48:20
【问题描述】:

我想要它,所以我的 Up 键移动海龟,我的 S 键清洁屏幕。此外,向上键命令有效:

import turtle
from turtle import Turtle, Screen

screen = Screen()

jack = Turtle("turtle")
jack.color("red", "green")
jack.pensize(10)
jack.speed(0)

def clean(x,y):
    jack.clear()
def move():
    jack.forward(100)

turtle.listen()
turtle.onkey(clean,"S")
turtle.onkey(move,"Up")

screen.mainloop()

【问题讨论】:

  • 您的代码缩进是否正确? def clean(x,y) 之后的下一行应该缩进。
  • 通过将"S" 传递给onkey() 方法,您特别需要输入大写字母。请改用"s"

标签: python turtle-graphics python-turtle


【解决方案1】:

@jasonharper 关于大写问题 (+1) 是正确的,但是当您以两种不同的方式导入海龟时,您显然对这段代码还有其他问题。 IE。您正在将turtle 的面向对象 API 与其功能 API 混合使用。让我们重写代码以仅使用面向对象的 API:

from turtle import Screen, Turtle

def move():
    turtle.forward(100)

screen = Screen()

turtle = Turtle('turtle')
turtle.color('red', 'green')
turtle.pensize(10)
turtle.speed('fastest')

screen.onkey(turtle.clear, 's')
screen.onkey(move, 'Up')
screen.listen()

screen.mainloop()

我更改了变量名称,以明确哪些方法是 screen 实例方法,哪些是 turtle 实例方法。您的双重导入掩盖了这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2015-11-17
    • 2019-03-25
    • 2018-11-12
    • 2018-10-30
    相关资源
    最近更新 更多