본문 바로가기
GameMaker강좌[GMS2]/DnD강좌-게임

[게임메이커 강좌-DnD][GMS2]두더지게임 만들기-4 : 타이머 게이지 표시

by 타락카얀 2021. 2. 18.
728x90

 

 

GAME MAKER 강좌

 

 

KAYAN


 

 

 

 

 

◈ 타이머 게이지 표시(obj_time, obj_game)

 

 

이번에는 화면우측 상단의 타이머를 만들어 봅시다.

 

(▲ 타이머)

 

먼저 게임을 총괄할 오브젝트를 하나 만듭니다.

오브젝트의 이름은 obj_game 라고 하겠습니다.

 

(▲ 게임 제어 오브젝트)

 

Create 이벤트를 추가하고, Common[Assign Variable]액션을 사용하여 게임 점수와 시간에 대한 변수를

선언하도록 합니다. 변수명은 참조하기 쉬운 이름으로 짓는 것이 좋습니다.

 

(▲ 게임에 필요한 변수 선언)

 

타이머에 대한 이미지를 스프라이트 이미지로 추가하도록 합니다.

 

(▲ 타이머 뒷배경)

 

타이머는 게이지 형태로 시간이 흐름에 따라 게이지가 왼쪽으로 줄어드는 것처럼 표시할 것 입니다.

 

(▲ 타이머)

 

게이지 이미지도 스프라이트 이미지로 추가하도록 합니다.

 

(▲ 타이머 앞쪽 게이지 이미지)

 

다음은 게이지를 표시할 오브젝트를 하나 만듭니다.

오브젝트의 이름은 obj_time 으로 하겠습니다.

그리고 타이머 뒷 배경 이미지를 오브젝트에 지정하도록 합니다.

 

(▲ 타이머 오브젝트)

 

Step 이벤트를 추가하고, Common[Assign Variable]액션을 사용하여 타이머 변수를 카운트 하도록 설정합니다.

 

(▲ 타이머 카운트)

 

이제 이미지를 표시해봅시다.

 

Draw 이벤트를 추가하고, [Draw Sprite]액션을 사용하여 뒷 배경을 먼저 표시하도록 합니다.

 

(▲ 뒷 배경 표시)

 

그리고 앞부분의 게이지를 표시해야겠죠.

 

(▲ 게이지 수치화)

 

Common[Declare Temp] 액션(임시 변수 : 변수가 정의된 이벤트 내에서만 사용할 수 있음)

타이머 수치를 게이지 이미지 크기로 환산합니다.

 

      (이미지크기)*변수값*(1/변수최대값)

 

강좌에서는 전체 크기가 180 이지만, 앞쪽에 32 가량의 빈 공간이 있었죠.

그럴 경우, 전체 크기에 빈공간 크기를 빼주면,

 

      (180-32)*(global.game_time)*(1/global.game_time_max)

 

이와 같이 설정할 수 있습니다.

게이지를 표시해야 합니다.

이미지를 잘라 표시할 수 있는 함수를 사용해야합니다.

액션엔 해당 기능이 없으므로 Common[Function Call] 액션을 사용하여 GML 함수를 호출할 필요가 있습니다.

함수는 아래와 같은 함수를 사용합니다.

 

      draw_sprite_part(sprite,subimg,left,top,width,height,x,y)

 

(▲ draw_sprite_part 함수 호출)

 

인자 수에 맞게 [+]버튼을 눌러 argument 를 추가하도록 합니다.

left에는 빈공간의 크기를 지정하고, width 에 타이머 수치를 환산한 값을 지정하고, x 위치를 빈공간만큼 이동시켜

표시해주면 됩니다.

 

타이머 설정이 끝났습니다.

 

게임을 제어할 시스템 오브젝트(obj_game)와 타이머(obj_time)를 룸의 인스턴스 레이어에 배치하도록 합시다.

 

(▲ 룸에 게임 제어 오브젝트와 타이머 배치)

 

잘 작동하는지 테스트해봅시다.

 

(▲ 타이머 표시)

 

 

 

 

- 계속 -

 

 

 

 

 

300x250

댓글