์ถœ์ฒ˜ : http://ludumdare.com/compo/2015/04/16/circular-and-ring-health-bars-with-gamemaker-code-and-explanation/





๋งํฌ ๋“ค์–ด๊ฐ€๋ณด์‹œ๋ฉด ๋ฐ๋ชจํ”„๋กœ๊ทธ๋žจ๋„ ์žˆ์Šด.ย 


์„ค๋ช…์ด ์ดํ•ด๊ฐ€ ์•ˆ๋˜๋ฉด ํ•œ๋ฒˆ ๋‹ค์šด๋ฐ›์•„์„œ ์‹คํ–‰ํ•ด๋ณด์‹œ๋ฉด ์ดํ•ด๊ฐ€ ์ž์•„์•„์•Œ~ ๋˜์‹ค๊ฒƒ. (์•„๋งˆ๋„)


๋ฐ๋ชจ ํ”„๋กœ๊ทธ๋žจ์€ ์œ„์•„๋ž˜ ๋ฐฉํ–ฅํ‚ค๋กœ ์กฐ์ ˆํ•  ๊ฐ’ ์„ค์ •, ์ขŒ์šฐ ๋ฐฉํ–ฅํ‚ค๋กœ ๊ฐ’ ์กฐ์ ˆ ๊ฐ€๋Šฅ.



๋ฐ๋ชจํ”„๋กœ๊ทธ๋žจ ์‹œ์—ฐ GIF.



๊ทธ๋ฆผ์œผ๋กœ ๊ฐ argument๋“ค์„ ์„ค๋ช…ํ•ด๋†“์€๊ฒƒ์ž„.




//scr_health_ring(x,y,radius,thickness,maxsegments,segments,startangle,totalangle,direction,colour)

//argument0 = x (์›์˜ ์ค‘์‹ฌ์ขŒํ‘œ x๊ฐ’)
//argument1 = y (์›์˜ ์ค‘์‹ฌ์ขŒํ‘œ y๊ฐ’)
//argument2 = radius (์›์˜ ๋ฐ˜๊ฒฝ<๋‚ด๊ฒฝ>)
//argument3 = thickness(์›์˜ ๋‘๊ป˜<์™ธ๊ฒฝ>)
//argument4 = maxsegments(์›์˜ ์ตœ๋Œ€ ๋“ฑ๋ถ„๊ฐ’. ๊ฐ’์ด ๋†’์„์ˆ˜๋ก ๊ณ ํ•ด์ƒ๋„...์Šค๋Ÿฌ์›Œ์ง)
//argument5 = segments(๋“ฑ๋ถ„๊ฐ’์ค‘ ์ฑ„์›Œ์งˆ ๋ถ€๋ถ„. HP๊ฐ’์„ ๋„ฃ์œผ๋ฉด ๋จ.)
//argument6 = startangle(์‹œ์ž‘๊ฐ๋„๋ฅผ ์˜๋ฏธ. 0์ด๋ฉด ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ์‹œ์ž‘, 90์ด๋ฉด ์œ„์ชฝ๋ถ€ํ„ฐ ์‹œ์ž‘, 180์ด๋ฉด ์™ผ์ชฝ๋ถ€ํ„ฐ์‹œ์ž‘ 270์ด๋ฉด ์•„๋ž˜๋ถ€ํ„ฐ์‹œ์ž‘)
//argument7 = totalangle(๊ทธ๋ ค์งˆ ๊ฐ๋„. 360์ด๋ฉด ์›์ด ๊ทธ๋ ค์ง€๊ณ  180์ด๋ฉด ๋ฐ˜์›, 90์ด๋ฉด ์‚ฌ๋ถ„์›์ด ๊ทธ๋ ค์ง)
//argument8 = direction(1์ด๋ฉด ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœย ์›์ด ๊ทธ๋ ค์ง, -1์ด๋ฉด ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ์›์ด ๊ทธ๋ ค์ง.)
//argument9 = colour(์ƒ‰. HP๋ผ๋ฉด c_green..?)

anglechange = (argument7/argument4)*(pi/180)
i = argument6*(pi/180)

ax = argument0+(cos(i)*argument2)
ay = argument1-(sin(i)*argument2)

bx = argument0+(cos(i)*(argument2+argument3))
by = argument1-(sin(i)*(argument2+argument3))

repeat(argument5) {
i += argument8 * anglechange

cx = argument0+(cos(i)*argument2)
cy = argument1-(sin(i)*argument2)

dx = argument0+(cos(i)*(argument2+argument3))
dy = argument1-(sin(i)*(argument2+argument3))

draw_triangle_colour(ax,ay,bx,by,dx,dy,argument9,argument9,argument9,0)
draw_triangle_colour(ax,ay,cx,cy,dx,dy,argument9,argument9,argument9,0)

ax = cx
ay = cy

bx = dx
by = dy
}




์‚ฌ์šฉํ• ๋•Œ์—๋Š” ์Šคํฌ๋ฆฝํŠธ(๋ฉ”์ธ๋ฉ”๋‰ด๋ฐ” ์ขŒ์ธก์˜ย script)๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋นจ๊ฐ„ ์‚ฌ๊ฐํ˜•(์•„๋ž˜๊ทธ๋ฆผ ์ฐธ์กฐ)์—ย scr_health_ring ๋ผ๊ณ  ์ ์–ด์ค€ ํ›„์—


object์˜ ์ด๋ฒคํŠธ๋ฅผ draw ์ด๋ฒคํŠธ๋กœ ๋งž์ถฐ๋†“๊ณ  ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘์—…..ย (draw๊ณ„์—ด์˜ ์ด๋ฒคํŠธ๊ฐ€ ์•„๋‹ˆ๋ฉด ์›์ด ์•ˆ๊ทธ๋ ค์ง! ์ค‘์š”ํ•จ!)



viewimage.php?id=2abcdd23dad63db0&no=29bcc427b28377a16fb3dab004c86b6f2ced7c20b333219d4e53db25fb9af42f290bc024ff256f0191faefe379f9b573f876c8a5e70de0512690

(์œ„ย ์ฝ”๋“œ๋Š” scr_health_ring์„ย ์กฐ๊ธˆ ์ˆ˜์ •ํ•ด์„œ ๋‘๊ป˜๊ฐ€ ์žˆ๋Š” ์›์„ ๊ฐ„๋‹จํžˆ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ •ํ•œ ๊ฒƒ์ž„.. ๊ธฐ๋ณธ ์›๋ฆฌ๋Š” ๊ฐ™์€๋ฐ ํ•„์š”ํ•˜์‹ ๋ถ„์ด ์žˆ์œผ๋ฉด ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ ค๋“œ๋ฆฌ๊ฒ ์Šด.)




์ข€๋” ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์–ป๊ณ ์‹ถ๋‹ค๋ฉด ์œ„์˜ ์ถœ์ฒ˜ ๋งํฌ๋กœ ๊ฐ€์„œ ํ›‘์–ด๋ณด๋ฉด ๋ ๊ฒƒ์ž„..


๋ชจ๋‘ ์ฆ๊ฑฐ์šด ์ฐฝ์ž‘ํ™œ๋™ ๋˜๊ธธ.