기본 콘텐츠로 건너뛰기

튜터리얼 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() 안에서 동작케 하는 것이다 . 아래 그 예를 살펴보자 .   f unction _init()   make_player() end function _update()   move_player() end f unction _draw()   cls() -- 스크린 지우...
최근 글

튜터리얼 3.3. 테이블

테이블 ( table) 은 여러 정보를 하나의 변수에 저장하는 방법이다 . 대부분의 PICO-8 게임은 테이블을 사용하게 되어 있어서 그 작동법을 알아두는 것이 좋다 . 어떤 정보나 값 ( value) 을 테이블에 추가할 때 그것은 어떤 이름 혹은 키값 ( key ) 인 숫자와 쌍을 이룬다 . 이 키값은 테이블에서 해당 정보를 다시 부를 때 이용한다 . " 저 테이블에 이 키값으로 저장한 정보를 찾아라 ." 라는 식으로 말이다 . 키값은 책의 색인과 같다 . 키값을 정하지 않고 테이블에 값을 추가하면 자동적으로 숫자가 키값으로 배정된다 . 예를 들어 살펴보자 . 이제 코드에서는 어떻게 보이는지 살펴보자 . 아래 예에서 보듯이 player 테이블을 만들 때 비어있는 중괄호를 이용한다 . 그 다음 지정된 키값으로 값을 추가한다 . 다른 예인 item 테이블은 중괄호 안에 값을 추가했지만 키값을 지정하지 않았다 . 이때 키값으로 숫자를 자동으로 지정한다 . player={} player.x=112 player.y=73 player.alive=true   Item={"sword","cloak","boots"} 이런 방식으로 테이블에 값을 넣는다 . 그렇다면 값을 다시 찾아오려면 어떻게 할까 ? 키이름이 지정된 키캆은 그냥 table.key 처럼 사용하면 된다 . 가령 , player.x 나 player.alive 처럼 말이다 . 하지만 숫자로 키값이 되어 있는 경우는 대괄호 안에 키값에 해당하는 숫자를 넣어서 사용한다 . 예를 들어 , items[1] 이나 items[3] 처럼 말이다 . 만일 키값으로 숫자를 ...

튜터리얼 3.2. 함수

함수(function ) 은 컴퓨터에게 주는 명령 목록을 한 이름 밑에 묶어 놓은 것이다 . 함수는   어떤 일련의 동작을 여러 번 컴퓨터가 하도록 할 때 만든다 . 보통  함수   이름 뒤에는 괄호를 붙인다 . 이 괄호 안에  함수가   어떤 작업에   별도의 정보가 필요할 때 그 정보를 입력한다 . 별도 정보가 필요 없어도 괄호를 붙인다 . 여기 draw_target() 이라는  함수   예가 있다 . 이 예는 filled circle 을 이용해 타겟 모양을 그린다 . ( 주의 : 이 작업을 위해서는 x, y 좌표 가 필요하다 .)   f unction draw_target(x,y)   circfill(x,y,16,8)   circfill(x,y,12,7)   circfill(x,y,8,8)   circfill(x,y,4,7) end 이 코드에서 보는 circfill() 역시  함수이 다 . 이  함수는   PICO-8 에 내장된 것으로 여러분이 직접 그 코드를 만들 필요가 없다 . 이  함수 에 x, y 좌표 , 반지름 , 색을 지정하면 그 좌표 , 반지름에, 해당 색으로 채워진 원을 그린다 . PICO-8 에는 이런 내장  함수가   더 많이 있다 . 보통  함수는   draw_target() 이나 circfill() 같이 지정된 작업만 한다 . 하지만 때로  함수가   작업을 마친 후 정보를 되돌려 주도록 ( return) 할 필요가 있다 . 가령 여러분이 여러 수학적인 작업을 하는  함수를   만들었는데 , 작업...

튜터리얼 3.1. 변수

변수(variables)는   기억하기 좋은 이름으로 정보를 저장하는 방법이다 . 변수에 해당하는 영어 단어 v ariable 이라는 이름에서 보듯이  변수에   저장하는 정보는 다양하며 ( vary) 바뀔수 있다 . PICO-8 에서  변수는   숫자 , 텍스트 , 참거짓값을 가질 수 있다 . 아래는  변수의  몇 가지 예이다 . X=64 name="dylan" Alive=true 어떤 단어는 미리 예약되어 있기 때문에  변수   이름으로 사용할 수 없다 ( "function" 같은 경우 ). 또한  변수   이름을 숫자로 시작할 수 없다 .  

튜터리얼 3.0. 프로그래밍 기본

이 작은 책에 프로그래밍의 모든 것을 소개하는 것은 맞지 않을 것이다 . 실재 그렇게 할 수도 없고 PICO-8 에 대해 이야기할 다른 재미있는 것들이 많다 . 더불어 이미 인터넷 상에 프로그래밍을 소개하는 좋은 자료들이 많다 . 그럼에도 , PICO- 8 을 즐기기 전에 프로그래밍에 대해 몇 개 확실히 짚고 넘어가야 할 것이 있다 . 중요한 것들로 , 이 몇 가지만 알면 프로그래밍에 대해 잘 모르더라도 이 튜터리얼을 따라 하는데 어려움이 없을 것이다 . 이미 프로그래밍에 대해 알고 있다면 이 부분을 넘어가도 좋다 .

튜터리얼 2.6. 좌표

PICO-8 의 스크린 사이즈는 넓이 128 픽셀에 높이 128 픽셀이다 . 처음에는 굉장히 작아 보이겠지만 이 정도 공간이면  광장히  많은 일을 할 수 있다 . 좌표 0,0 이 좌상단이고  좌표  127,127 이 우하단이다 . 즉 , 양수 x 는 오른쪽으로 가고 양수 y 는 아래로 향한다는 의미이다 ( 아마도 여러분이 아는 양수 y 는 보통 위로 향한다는 것과는 다르다 ). 그리고 0 에서부터 세기 때문에 위치 127 이 실재 128 번째 픽셀이라는 것을 기억하라 .

튜터리얼 2.5. 뮤직 에디터

뮤직 에디터에서는 사운드 에디터에서 만든 사운드를 이용해 음악 패턴을 만들 수 있다 . 각 패턴은 4 개의 채널이 있고 각 채널은 사운드 채널에서 만든 사운드를 포함한다 . 패턴의 재생은 상단 우측에 있는 세 개의 버튼 ( 두 개의 화살표와 하나의 사각형 ) 으로 제어한다 . 우측으로 향하는 화살표가 켜져 있으면 시작을 의미한다 . 왼쪽으로 향하는 화살표가 켜져 있으면 반복 ( 루프 ) 지점이다 . 사각형의 켜져 있으면 정지 지점이다 . 재생은 한 패턴의 끝에서 그 다음 패턴의 시작으로 흐른다 . 하지만 , 재생 중 한 패턴의 끝에 도달했지만 거기가 반복 지점이면 시작 지점을 찾아 거기서부터 다시 재생한다 . 만약 한 패턴의 끝에 도달했는데 거기가 정지 지점이면 재생은 멈춘다 . 숏컷 Space : 재생 / 멈춤 -/+ : 앞 / 뒤 패턴으로 가기 주의 : 뮤직 에디터에서도 사운드를 편집할 수 있다 . 따라서 사운드 에디터의 대부분 숏컷을 뮤직 에디터에서 사용할 수 있다 .