본문 바로가기
GameMaker강좌[GM8]/슈팅게임강좌

[게임메이커강좌-슈팅]슈팅게임 만들기-7-화면에 점수표시

by 타락카얀 2013. 4. 4.
728x90





이번엔 화면에 점수를 표시하는 방법에 대해 알아봅시다.



◈화면에 점수 표시



강좌에선 점수를 score변수를 사용했지요.
여러분이 다른 변수를 사용했다면 그것을 여기에서 사용하면 됩니다.
우선 기억해두시고, 먼저 폰트 리소스에 폰트를 추가합니다.



(▲컴퓨터에 설치된 폰트를 선택할 수 있음)


다음은 화면에 표시할 오브젝트를 하나 만들고,
Draw -> Settings -> Set Font를 선택하여 폰트를 지정합니다.



(▲리소스에 폰트를 추가해야 선택가능)



 
     Font : font20
     align : left //정렬 방식
      //left : 왼쪽으로 정렬 center : 가운데로 정렬 right : 오른쪽으로 정렬


이제 점수를 표시하는 방식을 생각해야합니다.
점수를 표시하는 방법이야 많지만 간단하게 2가지정도 알아보도록 합시다.
첫번째는 아래와 같이




(▲변수를 바로 표시하는 방식)


변수값을 바로 표시하는 방식있습니다.



 
    variable: score
    x : 32
    y : 32


두번째로는 자릿수 제한을 두어 표시하는 방식도 있습니다.
예를 들면 1230 점수가 있을 때, 최대 표시가 10자릿수이면 표시할때는 0000001230 으로 표시할 수 있지요.



(▲자릿수를 두고 변수를 표시하는 방식)


강좌에선 이 방법을 써보도록 합시다.

이것은 먼저 점수의 자릿수를 계산한뒤 앞에 0을 빈 자릿수만큼 채워 표시하는 것입니다.
일단 빈 자릿수를 채워줄 변수를 하나 만듭시다.





 
    variables : _def
    value : '00000000000000000'//값은 문자열로 선언
     // 따옴표('')를 사용하면 값을 문자열로 선언하게 됩니다.


그리고 Draw -> Settings -> Set Color를 사용하여 컬러를 지정해줍니다.



(▲색을 지정함)


텍스트의 표시 기본색은 검정색이므로 다른 색으로 표시할때 변경해주어야합니다.


이제 Control -> Variables -> Draw Variable액션으로 점수를 표시합니다.



변수 값에는


     string_copy(_def,1,최대값-string_length(string(점수)))

          +string_copy(string(점수),max(1,string_length(string(점수))+1-최대값),최대값)


'[앞에 빈 자릿수 만큼 0을 붙임] + [점수]' 형태의 식으로 값을 처리합니다.
최대값에는 최대 자릿수값을 넣으면 됩니다.


 
     variable:
           string_copy(_def,1,10-string_length(string(score)))
           +string_copy(string(score),max(1,string_length(string(score))+1-10),10)

    x : 32
    y : 32
     //최대 자릿수는 10


하지만 점수(숫자)가 9자리까지는 제대로 표시되지만, 10자리부터는 제대로 표시가 안되기 때문에,


     variable:
           string_copy(_def,1,10-string_length(string(score)))+string(score)
    x : 32
    y : 32
     //최대 자릿수는 9



이렇게 하셔도 됩니다.

만약 앞에 0을 붙이지 않은 점수(숫자)만 간단하게 표시하고 싶다면


     variable:
           string(score)
    x : 32
    y : 32
 


이런 식으로 score 변수만 표시하도록 설정하세요.


(▲위와 같이 표시가 됨)


여기까지 하시면 위의 그림처럼 표시됩니다.




◈화면에 플레이어의 HP 표시




강좌에선 global.hp의 변수에 플레이어의 체력을 저장했지요.
그것을 HP바 형태로 표시해봅시다.



(▲HP 표시 예)


Draw -> Drawing -> Vertical Gradient 액션을 사용합니다.



(▲그라디언트 형태)


HP는 '(체력*표시할 크기)/최대체력'으로 계산합니다.
따라서



 
    x1 : 32
    y1 : 450
    x2 : 32+((min(global.hp,5)*96)/5)//체력을 5까지만 표시하도록 설정하기 위해 min(최소값)을 사용.
    y2 : 465
    color1 : 녹색
    color2 : 노란색


이렇게 하면 좌측하단에 체력을 표시하게 됩니다.
외곽선을 더 추가한다면 차감내용을 알아보기 쉽겠지요.
일단 Draw -> Settings -> Set Color를 사용하여 컬러를 지정해줍니다.

그리고 Draw -> Drawing -> Rectangle을 사용하여 외곽선을 표시해줍니다.



(▲검정색 사각형을 표시하게 됨)


Rectangle액션은 안을 채워 표시할 수도 있고, 선만 표시할 수도 있습니다.
여기선 선만 표시하도록 합시다.



 
    x1 : 32
     y1 : 450
     x2 : 32+96
     y2 : 465

     filled : outline //선만 표시




(▲위와 같이 표시가 됨)


여기까지 하시면 위의 그림과 같이 녹색과 노란색이 섞인 사각형과 검정색 외곽선을 가진 사각형 모양의

체력바가 표시될 것입니다.





-------응용예제------


shooter-1945-7.gmk






300x250

댓글