기본 콘텐츠로 건너뛰기

튜터리얼 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

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

댓글

이 블로그의 인기 게시물

튜터리얼 1.0. 튜터리얼 소개

이 튜토리얼은 원래 포틀랜드 인디 게임 스쿼드 ( PIGSquad) 에서 내가 진행하는 PICO-8 워크샵에서 교재로 쓰려고 만들었다 . 원래의 목적과 더불어 , 나는 누구든 PICO-8 을 시작하려는 사람에게 이 교재가 도움이 됐으면 한다 . 내가 PICO-8 으로 무언가를 만드는 것을 좋아하는 것처럼 이 교재를 보는 당신도 그러길 희망한다 .   이 튜토리얼은 아르노드 드 복의 유명한 PICO-8 팬진에서 영감을 받아 만들어졌다 . 그의 팬진들 덕분에 내가 쉽게 PICO-8 을 시작할 수 있었던 것처럼 , 이 튜토리얼로 여러분이 쉽게 PICO-8 을쉽게 배우기를 바란다 .   이 튜토리얼에 추가하고 싶은 것을 전부 다 포함할 수는 없었지만 앞으로 더 많은 튜토리얼을 만들어 그것들을 포함할지도 모르겠다 . 이 튜토리얼을 만드는데 많은 도움과 지원을 받았고 그 모든 것에 감사한다 . PIOC-8 을 즐기시라 ! 딜런 (@ Mboffin) / Earl McHahm ( 한국어 번역 )

Dylan Bennet의 PICO-8 튜터리얼 목차

2020 년 1 월 29 일 수요일 오전 10:51 Dylan Bennet의 튜터리얼은 크게 아래와 같이 구성되어 있습니다. 소개 PICO-8 에 대하여 PICO-8 사용하기 코드 에디터 스프라이트 에디터 맵 에디터 사운드 에디터 뮤직 에디터 코오디네이츠(Coordinates) 프로그래밍 기초 게임 루프 튜토리얼 케이브 다이버 루나 랜더 게임 개발자를 위한 PICO-8 More on Tables 파티클 시스템 게임 스테이츠 코루틴 게임 출간하기 게시판에 출간하기 웹에 올리기 itch.io 에 출간하기 참조 코드 참조 음악 참조 더 많은 PICO-8 리소스 PICO-8 포트 참조 본 블로그에서는 최대한 본문의 순서와 구성에 맞춰서 게재를 할 예정이지만 읽기 편하도록 수정이 있을 수 있음을 미리 알려 드립니다. 더불어 튜터리얼을 편하게 번역하다보니 경어체로 하지 않았다는 점을 미리 알려드립니다.