python의 pygame package를 이용하는 중 다음의 코드를 실행시켰을 때 오류가 발생하였다.
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
#draw all our elemnets
#update everything
pygame.display.update()
오류내용 :
Traceback (most recent call last):
File "C:\Users\kacelab\PycharmProjects\Unogame\main.py", line 13, in
pygame.display.update()
pygame.error: video system not initialized
원인은 while loop 안에서 if문이 실행되는 조건문 event.type == pygame.QUIT가 만족되어 pygame.quit()이 실행되어서다. pygame.quit()이 실행된 이후 pygame.display.update()이 실행되려고 하여 오류가 발생하는 것이였다.
따라서 다음과 같은 코드를 추가하여 해당 문제를 해결하였다
import pygame
from sys import exit
pygame.init()
screen = pygame.display.set_mode((800, 600))
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
#draw all our elemnets
#update everything
pygame.display.update()
sys의 exit()를 활용하여 loop를 종료하는 부분을 추가해주었다.