기본 콘텐츠로 건너뛰기

튜터리얼 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]처럼 말이다.
만일 키값으로 숫자를 사용한다면 테이블 안에 얼마나 많은 값이 저장됐는지를 #items처럼 번호 기호(#) 이용하여 확인할 있다. 위의 item 테이블 예에서는 3이라는 답을 것이다. 기능은 테이블 안의 모든 값에 대해 루프를 하면서 개별 값에 어떤 작업을 해야 유용하다. 아래 예를 살펴보자.

for i=1,#items do
 print(item[i])
end

경우 i 1에서 시작해서 #items(,3)까지 작업을 한다. 매번 해당 값으로 items[i] 출력한다. I값이 1부터 3까지 진행하면서 해당 키값에 해당하는 아이템이 모두  출력된다.

댓글

이 블로그의 인기 게시물

튜터리얼 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() -- 스크린 지우...

튜터리얼 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 포트 참조 본 블로그에서는 최대한 본문의 순서와 구성에 맞춰서 게재를 할 예정이지만 읽기 편하도록 수정이 있을 수 있음을 미리 알려 드립니다. 더불어 튜터리얼을 편하게 번역하다보니 경어체로 하지 않았다는 점을 미리 알려드립니다.