Pygame 이란 파이썬에서 게임을 만들 수 있도록 도와주는 프레임워크입니다.
모듈에서 알아봤듯이 어떤 모듈을 가져오려면 import라는 명령어를 사용하여야 합니다.
init()은 가져온 pygame 모듈을 사용할 수 있도록 준비하는 과정입니다.
게임이 작동하려면 화면이 있어야 하겠죠? pygame의 display는 화면을 조작할 수 있도록 도와줍니다.
set_mode 함수는 우리가 사용할 화면의 크기를 지정할 수 있도록 도와줍니다.
window라는 변수에 게임 화면을 저장해봅시다.
게임이 지속적으로 진행되려면 프로그램이 종료되지 않고 계속 작동해야 합니다. 그렇기 때문에 우리는 앞서 배웠던 반복문을 사용할 예정입니다.
우리가 배웠는 반복문은 for 문이었죠? whild도 for와 같이 코드를 반복할 수 있게 해줍니다. while 뒤에 있는 조건문에 결과에 따라 반복할 것인가 아닌가를 결정하죠.
Check out the results of running the code !
만약 프로그램이 종료되었다면 while의 반복을 중단 시켜야 합니다. 그렇기 때문에 우리는 is_end라는 변수에 블리언 값을 이용할 것입니다.
pygame의 event에는 사용자가 어떤 키를 눌렀는지, 무슨 일을 했는지 알 수 있는 이벤트가 담겨있습니다. get()으로 모든 이벤트를 얻을 수 있죠.
가져온 이벤트 중 QUIT(그만두다)가 있다면 어떡해야 할까요? is_end의 값을 변경해서 프로그램을 종료 시켜주면 되겠죠?
만약 종료되지 않았다면, 게임 화면을 계속 새롭게 그려주어야 합니다. update()는 화면을 계속 새롭게 만들어 줍니다.
우리가 만든 게임 화면에 이미지를 넣어보죠.
평소에 하던 게임을 한번 생각해보세요. 배경화면, 캐릭터, 무기, 적 등등 많은 이미지가 움직이고 상호 작용을 하죠?
pygame의 image는 이렇게 게임에 필요한 이미지들을 관리할 수 있도록 도와줍니다.
load()는 필요한 이미지를 불러와서 사용할 수 있도록 해줍니다.
캐릭터의 위치 혹은 상황에 따라 이미지를 계속 새롭게 그려주어야 합니다. 그렇기 때문에 이미지를 그리는 함수를 따로 정의해야 합니다.
우리가 만들었던 게임 화면(window)에 blit를 이용해 가져온 이미지를 그릴 수 있습니다. 끝에 보이는 50, 50는 그림을 그릴 위치를 뜻합니다.
캐릭터를 그리기 전에 배경색을 칠해볼까요? fill은 화면에 원하는 색상의 페인트로 배경을 칠해줍니다. 여기에 사용되는 색상을 RGB 값을 이용해야 합니다. 일단 흰색으로 칠해 보죠.
이제 아까 만들었던 drow_image 함수를 이용해서 캐릭터를 그려줄 차례입니다.
여기까지 완성된 내용입니다.