我想检测一个按键,当它发生时,我想做一次操作。如果我为此使用键盘模块,它会多次声明。
我尝试了其他模块,但无法弄清楚。
import turtle
import keyboard
count_a = 5
#screen
wn = turtle.Screen()
wn.bgcolor("black")
wn.setup(width=800, height=600)
wn.tracer(0)
#pen
pen= turtle.Turtle()
pen.speed(0)
pen.color("white")
pen.penup()
pen.hideturtle()
pen.write(count_a, align="center", font=("courier", 24, "normal"))
#main
while True:
wn.update()
if keyboard.is_pressed('a'):
count_a -= 1
pen.clear()
pen.write(count_a, align="center", font=("courier", 24, "normal"))
如果在我的程序中按“ a”,则计数将大大降低,然后变为-1。如果您按下一次,我只想将计数设为4。
答案 0 :(得分:0)
break
:while True:
wn.update()
if keyboard.is_pressed('a'):
count_a -= 1
pen.clear()
pen.write(count_a, align="center", font=("courier", 24, "normal"))
break # <-
尽管如此,这将停止循环。虽然,如果希望它阻止代码在if
循环内执行,并且只运行一次该语句,则可以添加一个标志,该标志在第一次按下后停止。
if
后停止执行代码#main
waitingForA = True
while True:
wn.update()
if keyboard.is_pressed('a') and waitingForA: # <-
count_a -= 1
pen.clear()
pen.write(count_a, align="center", font=("courier", 24, "normal"))
waitingForA = False # <-
请注意,我是如何添加waitForA
变量的,然后在第一次按下后将其设置为False
,这将使if
语句停止运行,因为if语句解析为True
和False
,显然不会在和语句中运行。