Pygame 功能在 5 "yes" 次按下后停止
Pygame function stopping after 5 "yes" presses
我正在苦苦挣扎的是让一个 pygame 程序在上一个函数中按 5 次 "y" 键后停止我的函数。
我正在 pygame 创建一个程序,用于与参与者进行研究。我创建了一个在屏幕上显示句子的函数,每个句子都取自数据框中的一行。根据给定的参与者,无论该句子是否正确,都会按下 "y" 或 "n" 键并将其记录在数据框中的新列中。
现在我的函数正在迭代数据框中的所有 100 个句子。我希望它在 "y" 键被按下 5 次后停止迭代。
在得到键盘的响应时,我写了:
def getResponse(trialNum):
while True:
sentence = pygame.event.wait()
if sentence.type == pygame.QUIT:
self.gameExit = True
if sentence.type == pygame.KEYDOWN:
if sentence.key == pygame.K_y:
keyname = 'yes'
**yesCount = len(pygame.key.get_pressed())
break
if sentence.key == pygame.K_n:
keyname = 'no'
break
screen.fill((white))
带有星号 (*) 的行表示我尝试计算 "y" 键被按下的次数,我希望在以下函数中引用它:
正在启动程序:
def start():
screen.fill(white)
# trials loop
start_val = 0
stop_val = 5
while start_val < stop_val:
for trial in range(0,numEvents): #specifies number of events
showOneEvent(trial)
end()
我试过this Question about while-for loops
并没有成功。有人可以让我知道我在定义按 "yes" 按钮 5 次后停止的程序时语法上缺少什么吗?
谢谢。
在你的 while 循环中尝试添加一个 break 语句来退出循环。
while start_val < stop_val:
for trial in range(0,numEvents): #specifies number of events
if (yesCount == 5)
break;
showOneEvent(trial)
您也可以尝试添加到您的 start_val,因为您不会重复使用它。
while start_val < stop_val:
for trial in range(0,numEvents): #specifies number of events
start_val = start_val + 1
showOneEvent(trial)
我正在苦苦挣扎的是让一个 pygame 程序在上一个函数中按 5 次 "y" 键后停止我的函数。
我正在 pygame 创建一个程序,用于与参与者进行研究。我创建了一个在屏幕上显示句子的函数,每个句子都取自数据框中的一行。根据给定的参与者,无论该句子是否正确,都会按下 "y" 或 "n" 键并将其记录在数据框中的新列中。
现在我的函数正在迭代数据框中的所有 100 个句子。我希望它在 "y" 键被按下 5 次后停止迭代。
在得到键盘的响应时,我写了:
def getResponse(trialNum):
while True:
sentence = pygame.event.wait()
if sentence.type == pygame.QUIT:
self.gameExit = True
if sentence.type == pygame.KEYDOWN:
if sentence.key == pygame.K_y:
keyname = 'yes'
**yesCount = len(pygame.key.get_pressed())
break
if sentence.key == pygame.K_n:
keyname = 'no'
break
screen.fill((white))
带有星号 (*) 的行表示我尝试计算 "y" 键被按下的次数,我希望在以下函数中引用它:
正在启动程序:
def start():
screen.fill(white)
# trials loop
start_val = 0
stop_val = 5
while start_val < stop_val:
for trial in range(0,numEvents): #specifies number of events
showOneEvent(trial)
end()
我试过this Question about while-for loops 并没有成功。有人可以让我知道我在定义按 "yes" 按钮 5 次后停止的程序时语法上缺少什么吗?
谢谢。
在你的 while 循环中尝试添加一个 break 语句来退出循环。
while start_val < stop_val:
for trial in range(0,numEvents): #specifies number of events
if (yesCount == 5)
break;
showOneEvent(trial)
您也可以尝试添加到您的 start_val,因为您不会重复使用它。
while start_val < stop_val:
for trial in range(0,numEvents): #specifies number of events
start_val = start_val + 1
showOneEvent(trial)