기본 콘텐츠로 건너뛰기

튜터리얼 3.4. 게임 루프


PICO-8 게임 루프(the game loop)를 만들기 위해 개의 특별한 함수를 사용한다. _init() 함수는 작동한다. 게임이 끝날 때까지 _update() _draw() 함수가 반복해서 작동한다. 아래는 PICO-8 기본 구조이다. -- 뒤는 주석으로 함수가 어떤 작업을 하는지 설명한다.



function _init()
 --게임이 시작하면
 -- 부분의 코드가 작동한다.
end

function _update()
 -- 초마다
 -- 부분의 코드가 30 작동한다
end

function _draw()
 -- 부분의 코드도
 -- 초마다 30 작동한다
 --하지만 _update() 함수가 작동하고 다음에 작동한다
end

여러분의 모든 코드를 함수 안에 넣을 있지만 실제로는 그렇게 하는 좋은 방법이 아니다. 좋은 방법은 특정 작업을 하는 다른 함수를 만들고 _init(), _update(), _draw() 함수가 함수들을 작동시키는 것이다.
예를 들어, 플레이어의 동작 코드를 _update() 넣는 대신 move_player()라는 함수를 만들어서 그것을 _update() 안에서 동작케 하는 것이다. 아래 예를 살펴보자.
 
function _init()
 make_player()
end

function _update()
 move_player()
end

function _draw()
 cls() --스크린 지우기
 draw_player()
end

function make_player()
 px=64
 py=64
 psprite=1
end

function move_player()
 if (btn(0)) px-=1 --왼쪽
 if (btn(1)) px+=1 --오른쪽
 if (btn(2)) py-=1 --
 if btn(3)) py+=1 --아래
end

function draw_player()
 spr(psprite,px,py)
end

이런 식으로 하면 게임 루프가 깔끔하게 정돈된다. 이로써 개의 특별한 함수로 게임이 어떻게 작동하는지 알아봤다.

댓글

이 블로그의 인기 게시물

PICO-8 그리고 레트로 게임

이 블로그는 게인적으로 좋아하는 판타지 콘솔 PICO-8을 소개하기 위해 만들었습니다. 더불어 레트로 게임들과 그와 관련된 주변 문화에 대한 개인적인 의견과 기록을 남기는 일기장으로도 써볼까 합니다. 편하게 봐 주시기 바랍니다.