【问题标题】:Pygame function stopping after 5 "yes" pressesPygame 函数在 5 次“是”按下后停止
【发布时间】:2019-03-01 17:51:02
【问题描述】:

我正在努力让一个 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 并没有成功。有人可以让我知道我在按“是”按钮 5 次后定义程序停止时在语法上缺少什么吗?

谢谢。

【问题讨论】:

  • 请不要使用&lt;/br&gt; 进行代码格式化。在一个块中突出显示它并使用ctrl + k,或单击编辑器中的{} 按钮。我只是花时间编辑所有这些内容,然后被 zvone 打败了一行,所以这占用了相当多的时间。
  • 欢迎来到 StackOverflow。我有点好奇你如何调用/调用getResponse()pygame.event.wait() 很少出现在这样的函数中。

标签: python while-loop keyboard pygame


【解决方案1】:

在你的 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 2021-04-02
    相关资源
    最近更新 更多