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)를 룸의 인스턴스 레이어에 배치하도록 합시다.
(▲ 룸에 게임 제어 오브젝트와 타이머 배치)
잘 작동하는지 테스트해봅시다.
(▲ 타이머 표시)
- 계속 -
'GameMaker강좌[GMS2] > DnD강좌-게임' 카테고리의 다른 글
[게임메이커 강좌-DnD][GMS2]두더지게임 만들기-6 : 화면에 점수 표시 (0) | 2021.02.18 |
---|---|
[게임메이커 강좌-DnD][GMS2]두더지게임 만들기-5 : 두더지 공격 시스템 (0) | 2021.02.18 |
[게임메이커 강좌-DnD][GMS2]두더지게임 만들기-3 : 두더지 땅굴 만들기 (0) | 2021.02.17 |
[게임메이커 강좌-DnD][GMS2]두더지게임 만들기-2 : 두더지 만들기 (0) | 2021.02.17 |
[게임메이커 강좌-DnD][GMS2]두더지게임 만들기-1 (0) | 2021.02.17 |
댓글