함수(function)은 컴퓨터에게 주는 명령 목록을 한 이름 밑에 묶어 놓은 것이다. 함수는 어떤 일련의 동작을 여러 번 컴퓨터가 하도록 할 때 만든다.
보통 함수 이름 뒤에는 괄호를 붙인다. 이 괄호 안에 함수가 어떤 작업에 별도의 정보가 필요할 때 그 정보를 입력한다. 별도 정보가 필요 없어도 괄호를 붙인다.
여기 draw_target()이라는 함수 예가 있다. 이 예는 filled circle을 이용해 타겟 모양을 그린다. (주의: 이 작업을 위해서는 x, y 좌표가 필요하다.)
function 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) 할 필요가 있다.
가령 여러분이 여러 수학적인 작업을 하는 함수를 만들었는데, 작업이 다 끝나면 그 결과값을 알아야 할 때가 있다. 다시 말해 결과값을 여러분에게 돌려주도록(return) 할 수가 있다. 그리고 그 방법은 단순하다. 그냥 return을 이용하면 된다. 거기에 어떤 값을 받을지만 지정하면 된다. 아래 예를 보자.
function area(width,height)
return width*height
end
w=8
h=5
if
(area(w,h) > 25) then
print("big!")
end
(주의: 실제 PICO-8에서는 폰트가 하나이고 대소문자 구분이 없다. PICO-8 코드 에디터에서 보는 코드는 위와 다르게 보일 수도 있다.)
이 함수를 실행하면 return 값은 40이 된다. 40은 실제로 25보다 크기 때문에 print() 함수가 작동하게 된다.
함수는 여러분이 PICO-8에서 개발하는 것의 근간이 된다. 대부분의 게임은 실제로 수많은 함수가 함께 모여서 작동한다. 여러분의 코드가 한 함수에서 다른 함수로 어떻게 움직이는지 파악하는 것이 실제 훌륭한 게임을 만드는 비결이다.

댓글
댓글 쓰기