[英]Cannot make my pause function work in Pygame 3.4
我正在制作Pong游戲,但是無論我做什么嘗試,我都無法實現按CTRL + C時會停止的暫停系統。
我試過了:
elif event.key == K_SPACE:
try:
hello = pygame.time.delay(1000)
except KeyboardInterrupt:
hello = pygame.time.delay(1)
和:
elif event.key == K_SPACE:
try:
pygame.time.get_ticks()
except KeyboardInterrupt:
pass
和:
elif event.key == K_SPACE:
try:
time.sleep(10)
except KeyboardInterrupt:
pass
如何使游戲暫停,直到按CTRL + C為止?
我不是pygame專家,但我認為CTRL + C
僅在終端窗口(而非pygame窗口)聚焦時才會生成KeyboardInterrupt
。 由於pygame在聚焦時會捕獲所有擊鍵,因此您可能必須使用pygame.key.get_mods()
和pygame.KMOD_CTRL
來捕獲CTRL
+字母鍵。
無論如何,兩個while循環-一個嵌套在另一個循環中-和一個布爾值似乎可以使工作暫停。 這會暫停並在“ p”和CTRL + C
上恢復:
import pygame
def main():
pygame.init()
WIDTH=100
HEIGHT=100
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT))
CLOCK = pygame.time.Clock()
FPS = 10
running = True
# outer loop
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_p:
# resume
running = True
if event.key == pygame.K_c:
if pygame.key.get_mods() & pygame.KMOD_CTRL:
# ctrl + z
running = True
print "paused"
CLOCK.tick(FPS)
# game loop
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_p:
# pause
running = False
if event.key == pygame.K_c:
if pygame.key.get_mods() & pygame.KMOD_CTRL:
# ctrl + z
running = False
# rest of game code
print "running"
CLOCK.tick(FPS)
main()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.