【发布时间】:2021-05-27 19:39:03
【问题描述】:
onscreenclick 函数有问题。我的代码中有两个onscreenclick 命令,当我按下屏幕时,它们都会同时执行,我想以某种方式使它在我第一次按下屏幕时执行第一个命令,第二次按下屏幕时执行第二个命令.
import turtle
import time
import random
from random import randint
from time import sleep
wn = turtle.Screen()
wn.title("Reaction test")
wn.setup(width=600, height=600 )
wn.tracer(0)
wn.bgcolor("blue")
turtle.write("Click to start", move=False, align="center", font=("Arial", 40, "normal"))
from turtle import *
start = time.time()
def clicked(x, y):
resetscreen()
turtle.hideturtle()
wn.setup(width=600, height=600)
wn.tracer(0)
wn.bgcolor("red")
wn.title("Reaction test")
turtle.write(" Click when the\nscreen turns green", move=False, align="center", font=("Arial", 40, "normal"))
sleep(randint(5, 15))
resetscreen()
turtle.hideturtle()
wn.setup(width=600, height=600)
wn.tracer(0)
wn.bgcolor("green")
wn.title("Reaction test")
turtle.write("CLICK!", move=False, align="center", font=("Arial", 40, "normal"))
start
wn.listen()
wn.onscreenclick(clicked)
def click(x, y):
ms = time.time() - start
resetscreen()
turtle.hideturtle()
wn.setup(width=600, height=600)
wn.tracer(0)
wn.bgcolor("Green")
wn.title("Reaction test")
milliseconds = int(ms) * 1000
turtle.write(("Your reaction time was",milliseconds,"milliseconds"), move=False, align="center", font=("Arial", 40, "normal"))
wn.listen()
wn.onscreenclick(click)
wn.mainloop()
【问题讨论】: