2016년 10월 22일 토요일

[GMS] 원형 형태의 체력바 만들기

원형 형태의 체력바 만들기


GMS로 게임을 만들다 보면 체력 게이지나 에너지게이지 형태를 만들고 싶을때가 있습니다.
검색으로 아래 글을 찾았습니다.

원본글은 아래 참고 하시기 바랍니다.
http://ludumdare.com/compo/2015/04/16/circular-and-ring-health-bars-with-gamemaker-code-and-explanation/

위 내용을 바탕으로 간단하게 샘플은 만들었습니다.




소스는 위링크를 참고하면 될것 같습니다.
인자가 복잡하고 어려울 수 있는데요
호출 하는 부분에 대한 샘플 코드를 여기에

Ring 형태의 draw 하는 부분의 소스입니다.
draw_self();
if(pressed == true){
    var maxsegment = 40;
    scr_health_ring(x,y,40,5,maxsegment,
    ((totaltime-(totaltime-alarm[0]))*maxsegment/totaltime),
    90,
    360,
    -1,
    c_blue);
}

Circle 형태의 draw하는 부분의 소스 입니다.
draw_self();
if(pressed == true){
    var maxsegment = 40;
    scr_health_circle(x,y,40,maxsegment,
    ((totaltime-(totaltime-alarm[0]))*maxsegment/totaltime),
    90,
    360,
    -1,
    c_blue);
}

maxsegment 의 숫자를 늘리면 조각이 많이 나서 좀 더 원형을 가지게 되지만 draw시 시간이 오래걸립니다.
공통으로 되어있는 아래의 코드는 타이머의 남은 시간 만큼을 원형으로 그리기 위해 계산을 하게됩니다 전체 시간이 남아있을경우 원형 그대로 나오게되고 alarm 타이머의 값의 줄어들수록 시간이 만료되게되므로 작은 파이 형태의 이미지가 나오게 되는겁니다.
 ((totaltime-(totaltime-alarm[0]))*maxsegment/totaltime) 

아래는 전체 샘플의 코드 링크입니다.

https://drive.google.com/open?id=0B9vAKDzHthQIbHhueHhyelVpRkU


댓글 없음:

댓글 쓰기