Inflearn brand logo image

인프런 커뮤니티 질문&답변

해콩순이님의 프로필 이미지
해콩순이

작성한 질문수

PyGame 어드벤쳐 : 위니브 월드를 수복하라!

002. 요리하기

질문드립니다

작성

·

292

0

안녕하세요.
강의 잘 듣고 있습니다.^^
해당 강의 요리게임 강좌 코드 중 질문이 생겨 질문드립니다/
마지막 줄 Quit 이벤트를 받아오고
코드를 이렇게 작성하는데
왜 pg.sidplay.quit()
이 for문 안에 들어가지 않고 따로 빠지는지 궁금합니다!
   for 이벤트 in pg.event.get():
        if 이벤트.type ==pg.QUIT:
            실행여부=False


pg.display.quit()

답변 3

0

Hojun Lee님의 프로필 이미지
Hojun Lee
지식공유자

1. for안에 있는 pygame.event.get()은 함수를 통해 게임 중간에 발생한 이벤트를 캐치하여 검사하겠다는 얘기입니다. 마우스 클릭, 키보드 클릭 등이요. 

2. if문 안에 들어가는 pygame.QUIT은 종료 이벤트이며 창에서 X 버튼을 클릭하면 나오는 이벤트에요. 그 다음 '실행여부 = False'는 만약 종료 이벤트가 맞다면 메인 루프의 while문이 안돌아가게 하는 것입니다.

3. pg.display.quti()은 메인루프가 종료되면 '메인루프 밖에서' 종료되게 해주는 이벤트입니다.

3번이 궁금하셨던 것 같은데 주로 메인루프가 종료되도 실행되는 코드가 있는 경우 이 방식을 사용합니다. 루프 안에 게임 이벤트만 넣기 위해서도 위 방식을 사용하죠.

큰 차이가 없어서 처음에 사용했던 방식을 그대로 사용하셔도 되요. :)

해콩순이님의 프로필 이미지
해콩순이
질문자

잘 이해되었습니다.

감사합니다^^

0

해콩순이님의 프로필 이미지
해콩순이
질문자

아하 그러면

Pg.display.quit() 을 꼭 넣어야 창이 닫히는건가요??

저 코드는 어떤 역할을 하나요?

0

Hojun Lee님의 프로필 이미지
Hojun Lee
지식공유자

안녕하세요. :)

for문 위 아래로 있는 pg.display.update()와 pg.display.quit()은 게임의 '이벤트'가 아니기 때문에 그렇습니다.

해콩순이님의 프로필 이미지
해콩순이

작성한 질문수

질문하기