在pygam中暂停游戏和用户输入

2024-06-16 11:02:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在做一个游戏在Pygame,我有一个基本的游戏,因为我遵循了一个教程,但我知道我想改进它,使它在一段时间后(例如,每30秒左右),游戏暂停,用户被问到一个问题,他们必须输入正确的答案,以继续玩游戏。我一直在网上寻找和试验一点,但挣扎了相当多!以下是相关代码:

class question():
    pressKeySurf, pressKeyRect = makeTextObjs('9+1.', BASICFONT, WHITE)
    pressKeySurf, pressKeyRect = makeTextObjs('Press A for 10.', BASICFONT, WHITE)
    pressKeySurf, pressKeyRect = makeTextObjs('Press B for 15.', BASICFONT, WHITE)
    for event in pygame.event.get():
        if (event.key==K_a):
            showTextScreen('Correct answer') # pause until a key press
            lastFallTime = time.time()
            lastMoveDownTime = time.time()
            lastMoveSidewaysTime = time.time()
        else:
            showTextScreen("Wrong")

pygame.time.set_timer(question,1000)

我不知道这是否是在正确的方向,因为我不能让它工作,因为我认为我理解错误,我不应该在计时器中使用类,但是不确定?在


Tags: keyevent游戏fortimepygamepressquestion
1条回答
网友
1楼 · 发布于 2024-06-16 11:02:05

你希望这是一个函数,而不是一个类。将class替换为def

更大的问题是你对set_timer的使用不正确。它是:

set_timer(eventid, timems)

其中eventid和{}都是整数。set_timer按指定的时间间隔将事件放入事件队列中,它不调用任何函数。您必须将代码放入主循环以检查eventid,然后执行适当的代码。在

来自this SO answer:的示例代码:

^{pr2}$

相关问题 更多 >