루아 Love 2D 게임만들기 튜토리얼 1번에서 사각형을 그려봤다.

 

이 포스트에서는 원을 그리고 배경색상과 도형에 색상을 입혀본다.

 

원 그리기

원그리기도 사각형 그리는 것과 비슷하다. 사각형은 너비와 높이를 가지지만 원은 반지름이 있으니 매개변수로 radius 를 전달하면 된다.

 

documentation 참고를 생활화하면 시간을 아낄 수 있다. 숙련된 프로그래머들은 항상 documentation 의 중요성에 대하여 이야기하는데 documentation 사용을 잘하면 구글에 검색할 필요가 별로 없다. 그런데 이런 API 문서의 대부분이 좀 불친절(?) 하기 때문에 stackoverflow를 찾게 된다. 물론 stackoverflow에는 보통의 프로그래머가 생각하는 웬만한 문제에 대한 해답은 그 안에 다 있다고 한다. 여기에 등록된 질문이 몇백만개인지 셀수도 없다. 참 어마어마한 숫자인데 질문과 답변이 정형화 되어 있지 않아서 읽는데 시간이 많이 걸린다.

 

API 문서는 정리가 잘되어 있기 때문에 연관성을 가지고 집중적으로 읽는다면 이미 해답을 가지고 있는 것과 다름이 없다. 예를 들어서 rectangle과 circle의 사용법을 알면 trianlge 삼각형, ellipse 타원형 같은 함수의 사용법도 이미 알고있는 것과 마찬가지다. 매개변수를 어떻게 줄 건지만 생각하면 된다.

 

또 하나는 love2D는 SDL2 기반의 프레임워크이기인데 오픈소스의 많은 게임 프레임워크가 SDL2 라이브러리를 사용한다. 그 말은 다른 프레임워크를 만나도 이름과 문법만 바뀌고 매개변수가 같은 함수를 볼 수 있다는 것이다. API 문서도 비슷하게 기술되어 있다. 이런 식으로 모든 프레임워크의 API문서를 들여다 보지 않아도 시야가 넓어질 수 있다.

 

 

* 링크 원그리기 메소드 - love.graphics.circle - LOVE (love2d.org)

 

 

자 그럼 원을 그려보자. 매개변수는 (모드, x, y, 반지름) 이다. x, y값은 원의 중심 좌표니까 0, 0 에서 시작하면 원이 4분의1밖에 안보인다는 점에 주의한다.

love.graphics.circle("fill", 50, 200, 50)

 

원을 그리는 것은 어렵지 않았다. 그런데 색깔이 심심하다. 이번에는 색상을 입혀보자.

 

배경색과 도형색 칠하기

배경색은 setBackgroundColor  메소드에 RGB 값을 사용하고 도형색은 setColor 메소드에 RGB값을 사용한다.

 

네번째 매개변수를 추가하면 알파값도 지정할 수 있지만 지금은 그냥 RGB로 실행해보자.

 

주의할 점은 Love2D 프레임워크 버전 10까지는 0~255까지의 정수값을 사용했는데 버전 11부터는 0부터 1까지의 실수를 사용한다. (루아의 정수나 실수나 number 타입이다)

 

보통 웹에서 색상을 고를때 0부터255까지의 RGB Color Picker 를 사용하면 0~1범위는 잘 안나오는데 방법이 있다.

 

이렇게 숫자를 뽑아서 각 RGB 값을 255로 나눠주면 된다.

 

  love.graphics.setBackgroundColor(179/255, 217/255, 255/255)
  
  love.graphics.setColor(77/255, 77/255, 255/255)
  
  love.graphics.circle("fill", 50, 200, 50)

 

성공하면 다음과 같이 배경색과 도형의 색상이 제대로 나온다.

 

 

맘에드는 색상의 RGB 코드는 인터넷에서 고르면 된다. RGB Picker Site 가 많으니까 구글 검색으로 마음에 드는 웹사이트를 사용하자. 아래 웹사이트는 구글에서 검색하였다.

 

Color Picker — HTML Color Codes

 

Color Picker — HTML Color Codes

Finding that perfect color is easier than you think. Use our color picker to discover beautiful colors and harmonies with Hex color codes and RGB values.

htmlcolorcodes.com

 

다음 튜토리얼에서는 조금 더 복잡한 동작을 다룰 것이다. 게임 프로그래밍이 어렵지만 한발씩 단계적를 밟아 진도를 나가면 그렇게 어렵지 않다. 프로그래밍 자체 보다는 게임에셋(그래픽 소스, 오디오 등)을 구하는게 더 많은 시간이 들어간다. Love2D같은 엔진으로 혼자 개발하는 1인 개발사도 나쁘지 않지만 그래픽이나 게임에셋을 다룰 수 있는 팀원이 있다면 멋진 게임을 더 빨리 개발할 수 있을 것이다.

공유하기

facebook twitter kakaoTalk kakaostory naver band