Я планирую создать игру с pygame, используя кнопки gpio. Вот код:
from gpiozero import Button
import pygame
from time import sleep
from sys import exit
up = Button(2)
left = Button(3)
right = Button(4)
down = Button(14)
fps = pygame.time.Clock()
pygame.init()
surface = pygame.display.set_mode((1300, 700))
x = 50
y = 50
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
break
if up.is_pressed:
y -= 5
if down.is_pressed:
y += 5
if left.is_pressed:
x -= 5
if right.is_pressed:
x += 5
surface.fill((0, 0, 0))
pygame.draw.circle(surface, (255, 255, 255), (x, y), 20, 0)
pygame.display.update()
fps.tick(30)
Однако, когда я нажимаю кнопку X в верхней части окна, оно не закрывается. Есть ли для этого возможное решение?
РЕДАКТИРОВАТЬ: Все дают один и тот же ответ, что я не добавляю цикл for для проверки событий и выхода. Я поместил это здесь, в свой код:
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
break
Я тоже пробовал sys.exit()
.
РЕДАКТИРОВАТЬ 2: @Shahrukhkhan попросил меня поместить оператор печати внутри цикла for event in pygame.event.get():
, что сделало цикл таким:
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
print "X pressed"
break
root@raspberrypi:~/Desktop# python game.py
X pressed
X pressed