3. Hello World 프로그램에서 시작하자
Last updated
Last updated
코딩으로 들어가는 첫 관문이다. 항상 그렇지만, 여러분과 함께 Hello World 코드부터 배워보는 것으로 시작해야 할 것이다. 그런데, 파이게임제로(pygame zero)은 프로그래밍 언어 그 자체가 아니라, 라이브러리이기 때문에 정확하게 우리가 알고 있는 그 Hello World 프로그램을 만들어 보는게 아니라, Hello World 프로그램에 빗대어 파이게임제로 라이브러리를 이용한 코딩을 할 때, 빼놓을 수 없는 가장 최소한의 기본 코드로만 구성된 가장 작은 프로그램을 만들어보는 예제를 살펴보도록 하겠다.
먼저, MU 에디터를 실행시키자. 메뉴바에 있는 New(새 파일) 버튼을 눌러 파일을 열고, 첫 코딩을 시작하자. 다음의 단 한줄짜리 코드를 적어보자.
코딩은 끝이다. 와우! 너무 간단하지 않은가? 그렇다. 그래서, 파이게임제로는 에서 우리가 파이썬 코딩의 맛뵈기를 본 것과 같이 파이썬 코딩을 통한 게임제작을 아주 단순화시켜 놓았다 그래서 파이게임제로를 통해 파이썬 코딩을 공부하는 것은 텍스트코딩 입문자에게는 매우 적절한 선택일 수 있다.
우리는 단지 이 한 줄(라인)짜리 코드만으로 'Hello World' 라는 앱 이름을 갖는 내용없는 화면만 가진 아주 간단한 프로그램을 만들었다.
이제 코드를 파일에 저장하기 위해 메뉴바에 Save(저장) 버튼을 누르고 hello_world 라는 파일이름으로 저장하자. 그리고, 메뉴바의 Play(실행) 버튼을 눌러 실행을 시켜서 원하는데로 잘 동작하는지 확인해 보자. 우리가 기대 했던 'Hello World' 라는 앱 이름을 갖는 그러나 아무 내용없는 화면만 가진 앱이 잘 실행되었는가?
다시 코딩으로 돌아가기 위해 우리는 방금 실행된 앱을 종료시켜야 하는데, 해당 프로그램 창에 x버튼(프로그램 종료버튼)을 눌러 게임앱 자체의 종료는 가능하지만, Mu 에디터에서 다시 코딩을 이어가려면 반드시 메뉴바의 Stop(정지) 버튼을 눌러 종료시켜야 한다는 것을 잊지말도록 하자.
단, 한 줄짜리 코드지만, 코드를 분석해 코드를 이해해 보자. TITLE 이란 변수에 앱의 이름을 저장해 두었다. TITLE 이란 변수명에서 직감적으로 알 수 있듯이 만들고자하는 앱의 이름(타이틀)을 지정하는 용도의 변수이구나 라고 추측할 수 있을 것이다. 그런데, 왜 변수명이 TITLE 이어야 하지? 라는 의문이 들 수 있다. 소문자로 title로 하거나, 아예 APPNAME 이라고 내가 원하는데로 변수명을 정하면 안되는 것인가? 그렇다, 애석하게도 그렇게는 되지 않는다. 진짜 그러한지 확인을 위해 실험을 원한다면, 변수명을 다른 것으로 바꾼 후, 원하는 결과가 나오는지 다시 앱을 실행시켜 보자. 원하는 결과를 얻을 수 없다는 것을 알 수 있을 것이다.
이제 우리 게임앱을 더 확장시켜보자. 이제 다음의 2줄의 코딩을 더해 총 3줄(라인)짜리 코딩이 되었다. 우리는 단지 이 3줄짜리 코드만으로 앱 이름으로 'Hello World' 라는 이름을 갖는 가로세로 400 x 300 픽셀크기의 내용없는 화면만 가진 아주 간단한 프로그램을 만들었다. 이를 Play(실행) 버튼을 눌러 실행시켜보자.
그렇다면 맨 처음 만든 1줄짜리 앱과 이 앱의 차이는 무엇인가? 그렇다 우리는 추가적으로 WIDTH, HEIGHT라는 넓이, 높이라는 의미를 같는 변수를 사용한 추가적인 코딩을 했고, 여러분들이 직관적으로 느낄 수 있듯이 기존에 TITLE 같이 이 변수명들은 파이게임제로 라이브러리가 미리 정해놓은 앱의 크기를 정하는 내장변수 같은 것이고, 이를 활용한 덕분에 이제 우리는 우리가 원하는 정확한 크기를 갖는 앱을 만들 수 있게 되었다.
여기까지 Hello World 프로그램 제작을 마치고, 다음부터는 실제 게임제작에 앞서 반드시 이해가 필요한 게임 프로그램의 기본구조에 대해 알아보도록 하겠다.
우리가 기존 서를 통해 파이썬 언어를 처음 배울 때 배웠던 , 내장변수 같은 개념들이 기억나는가? 이 변수는 이러한 개념들과 유사하다. 우리가 이전 서에서 라이브러리가 무엇인지를 배우면서, 를 사용한다는 것 자체는 라이브러리의 제작자가 정해놓은 규칙을 배우고, 그 규칙에 맞춰 코딩하는 것이라 언급했던 것을 기억한다면, 파이게임제로를 사용한다는 것은 파이게임제로 게임제작자가 정해놓은 규칙을 배워 코딩하다는 것이고, 방금 배운 TITLE이라는 변수는 이미 제작자가 정해놓은 고유명사 같은 것이고, 이 변수명만 사용해 변수에 앱의 이름을 담아야지만, 앱 실행시 앱 이름이 정상표기를 보장한다 것을 의미한다.