Все программы PyGame имеют событие L oop. Это непрерывный l oop, который принимает события из оконного менеджера / операционной среды. События - это такие вещи, как движения мыши, нажатия кнопок и нажатия клавиш. Если ваша программа не принимает события, в конечном итоге запускающая программа сочтет, что она перестала отвечать, и, возможно, предложит пользователю прекратить ее.
Ваш существующий код получает ввод из консоли. Это можно сделать в PyGame, если вы используете поток, а затем отправляете событие обратно в основной файл l oop. Но обычно проще обрабатывать выход как событие. В приведенном ниже коде я обработал выход с событием QUIT
и нажатием Q .
import pygame
pygame.init()
screen_width=800
screen_height=800
screen=pygame.display.set_mode([screen_width,screen_height])
Board = pygame.image.load("TicTacToeBoard.jpg")
clock = pygame.time.Clock()
# Main Event Loop
exiting = False
while not exiting:
# Handle events
for event in pygame.event.get():
if ( event.type == pygame.QUIT ):
exiting = True
elif ( event.type == pygame.MOUSEBUTTONUP ):
# On mouse-click
mouse_pos = pygame.mouse.get_pos()
print( "Mouse Click at "+str( mouse_pos ) )
elif ( event.type == pygame.KEYUP ):
if ( event.key == pygame.K_q ):
# Q is quit too
exiting = True
# Paint the screen
screen.fill((255,255,255))
screen.blit(Board,(0,0))
pygame.display.flip()
# Limit frame-rate to 60 FPS
clock.tick_busy_loop(60)
Кроме того, этот код также ограничивает частоту кадров до 60 FPS.