我目前正在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)
我不知道目前是否正朝着正确的方向前进,因为我认为我理解错误而且我不应该使用课程计时器,但不确定?
答案 0 :(得分:2)
你希望这是一个功能,而不是一个类。将class
替换为def
更大的问题是您对set_timer
的使用不正确。它是:
set_timer(eventid, timems)
其中eventid
和timems
都是整数。 set_timer
以指定的时间间隔将事件放入事件队列,它不会调用任何函数。您必须将代码放在主循环中以检查eventid
,然后执行相应的代码。
来自this SO answer:的示例代码:
pygame.init()
pygame.time.set_timer(USEREVENT + 1, 100)
while True:
for event in pygame.event.get():
if event.type == USEREVENT + 1:
functionName()
if event.type == QUIT:
pygame.quite()
sys.exit()