我每次发布密钥时都会尝试添加1:
from turtle import *
import turtle
turtle1 = Turtle()
screen = turtle1.getscreen()
goPressed = False
进口龟......
currentWatts=0
def onaclicked():
global currentWatts
currentWatts+=1
print (currentWatts)
定义了我的函数,当密钥:1,被释放时运行
turtle.onkeyrelease(onaclicked, "1")
由于某些原因onkeyrelease
即使我导入了Turtle并在Python文档中签入,也不存在onkeyrelease
。它应该工作,不应该吗?我不正确地导入了吗?你能帮我吗?
我希望它为onkey
而不是onkey
的原因是因为它适用于游戏。使用groupby
时,当您将手指放在键上时,它会在0.25秒内向currentWatts添加1。您可以通过在键上放置一些东西来作弊,所以我只想在释放键时添加1。
答案 0 :(得分:1)
你的代码有几个问题:你用两种不同的方式导入龟,这会混淆你的东西; onkeyrelease()
实际上是一个屏幕/窗口的方法,而不是乌龟;你没有调用允许处理击键的listen()
。以下内容适用于Python 3:
from turtle import Turtle, Screen, mainloop
def onaclicked():
global currentWatts
currentWatts += 1
print(currentWatts)
currentWatts = 0
screen = Screen()
screen.onkeyrelease(onaclicked, "1")
screen.listen()
mainloop()
确保在开始输入之前单击窗口一次以使其激活。
如果您使用的是Python 2,我怀疑您收到的错误消息,请将Python 3别名onkeyrelease
替换为onkey
:
添加了Screen.onkeypress()方法作为补充 Screen.onkey()实际上将动作绑定到keyrelease事件。 因此后者有一个别名:Screen.onkeyrelease()。
这两个版本的更改应该相同。使用onkeyrelease
代替onkey
并不能解决您在关键问题上的责任。
当你用手指按住键时,它会加1 currentWatts每0.25秒左右。你可以通过放置作弊 键上的东西所以我希望它只在您发布时添加1
自动密钥重复似乎由操作系统处理,可能需要在Python外部禁用,具体取决于操作系统。一些示例链接: