๐ Health Bar System ์ฝ๋ ๋ฌธ์
์ธ๋ ๊ฒ์ ๊ฐ๋ฐ์ ์ํ GDScript๋ก ์์ฑํ Health Bar system ์ ๋ฌธ์ํ ํ์์ต๋๋ค.
๊ฐ์
res://common_hpbar/
์ด ์ฝ๋๋ Godot ์์ง์์ ProgressBar
๋ฅผ ํ์ฉํ ์ฒด๋ ฅ ์์คํ
์ ๊ตฌํํฉ๋๋ค. Health Bar
๋ ํ๋ ์ด์ด์ ํ์ฌ ์ฒด๋ ฅ์ ๋ํ๋ด๋ฉฐ, Damage Bar
๋ ๋ฐ๋ฏธ์ง๋ฅผ ์๊ฐ์ ์ผ๋ก ์ง์ฐ๋ ํจ๊ณผ๋ก ํํํฉ๋๋ค. Timer
๋ฅผ ์ฌ์ฉํ์ฌ Damage Bar
์
๋ฐ์ดํธ์ ์ง์ฐ์ ์ถ๊ฐํด, ์ฒด๋ ฅ ๊ฐ์๋ฅผ ์๊ฐ์ ์ผ๋ก ๊ฐ์กฐํฉ๋๋ค.
์์ฑ
timer (
Timer
๋ ธ๋): ๋ฐ๋ฏธ์ง ํจ๊ณผ์ ์๊ฐ์ ์ง์ฐ์ ๊ด๋ฆฌํฉ๋๋ค. ๋ฐ๋ฏธ์ง๊ฐ ๋ฐ์ํ๋ฉด ํ์ด๋จธ๊ฐ ์์๋์ด ์ผ์ ์๊ฐ์ด ์ง๋ ํ์Damage Bar
๊ฐ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.damage_bar (
ProgressBar
๋ ธ๋):Health Bar
์๋ ๋ณ๋๋ก, ๋ฐ๋ฏธ์ง๋ฅผ ๋ฐ์ํ๊ธฐ ์ํด ์ง์ฐ๋ ์ํ๋ก ์ฒด๋ ฅ ๊ฐ์๋ฅผ ์๊ฐ์ ์ผ๋ก ํ์ํ๋ProgressBar
์ ๋๋ค.health (
int
): ํ๋ ์ด์ด์ ํ์ฌ ์ฒด๋ ฅ์ ๋ํ๋ด๋ ๋ณ์์ ๋๋ค. ์ด ๋ณ์๋_set_health
ํจ์๋ฅผ ํตํด ๊ฐ์ด ์ค์ ๋ฉ๋๋ค.
ํจ์
func init_health(_health: int) -> void
- ์ค๋ช : ํ๋ ์ด์ด์ ์ด๊ธฐ ์ฒด๋ ฅ ๊ฐ์ ์ค์ ํ๋ ํจ์์ ๋๋ค.
- ๋งค๊ฐ๋ณ์:
_health
: ์ด๊ธฐ ์ฒด๋ ฅ ๊ฐ.- ๋์:
health
๋ณ์์_health
๊ฐ์ ํ ๋นํ์ฌ ํ๋ ์ด์ด์ ์ฒด๋ ฅ์ ์ด๊ธฐํํฉ๋๋ค.max_value
์value
์์ฑ์ ์ค์ ํ์ฌHealth Bar
์Damage Bar
๊ฐ ์ด๊ธฐ ์ฒด๋ ฅ์ ํ์ํ๋๋ก ํฉ๋๋ค.
func _set_health(new_health: int) -> void
- ์ค๋ช :
health
๊ฐ์ ์ ๋ฐ์ดํธํ๊ณ , ๋ฐ๋ฏธ์ง๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํ์ด๋จธ๋ฅผ ์๋์ํค๋ setter ํจ์์ ๋๋ค.- ๋งค๊ฐ๋ณ์:
new_health
: ์ ๋ฐ์ดํธํ ์ฒด๋ ฅ ๊ฐ.- ๋์:
new_health
๊ฐ์health
์ ์ค์ ํ๊ณ ,value
์์ฑ์ ์ ๋ฐ์ดํธํฉ๋๋ค.health
๊ฐ 0 ์ดํ๋ก ๋จ์ด์ง๋ฉด ๋ ธ๋๋ฅผ ์ญ์ ํฉ๋๋ค.health
๊ฐ ๊ฐ์ํ ๊ฒฝ์ฐ(prev_health
๋ณด๋ค ๋ฎ์์ง ๊ฒฝ์ฐ),timer
๊ฐ ์๋ํ์ฌDamage Bar
์ ์๊ฐ์ ์ง์ฐ ํจ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค.health
๊ฐ ๊ฐ์ํ์ง ์์ ๊ฒฝ์ฐ์๋Damage Bar
์value
๋ฅผ ์ฆ์health
์ ๋์ผํ๊ฒ ์ค์ ํฉ๋๋ค.
func _on_timer_timeout() -> void
- ์ค๋ช : ํ์ด๋จธ ์๊ฐ์ด ์ข ๋ฃ๋์์ ๋ ํธ์ถ๋๋ ํจ์์ ๋๋ค.
Damage Bar
๊ฐHealth Bar
์ ์ฒด๋ ฅ ๊ฐ์ ๋ฐ๋ผ๊ฐ๋๋ก ์ ๋ฐ์ดํธํฉ๋๋ค.- ๋์:
damage_bar.value
๋ฅผhealth
์ ๋์ผํ๊ฒ ์ค์ ํ์ฌ ๋ ๋ง๋๊ฐ ์ผ์นํ๋๋ก ๋ง๋ญ๋๋ค.
์ฝ๋ ํ๋ฆ
- init_health ํจ์๊ฐ ํธ์ถ๋์ด ์ด๊ธฐ ์ฒด๋ ฅ ๊ฐ์ ์ค์ ํฉ๋๋ค.
- ์ฒด๋ ฅ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค _set_health ํจ์๊ฐ ํธ์ถ๋ฉ๋๋ค.
- ์ฒด๋ ฅ์ด ๊ฐ์ํ์ ๊ฒฝ์ฐ, ํ์ด๋จธ๊ฐ ์์๋๊ณ ์ง์ฐ ํ์ _on_timer_timeout ํจ์๊ฐ ์คํ๋ฉ๋๋ค.
- _on_timer_timeout ํจ์๊ฐ ์คํ๋๋ฉด
Damage Bar
๊ฐHealth Bar
์ ๋์ผํ ๊ฐ์ผ๋ก ์ค์ ๋ฉ๋๋ค.
์ฐธ๊ณ ์ ํ๋ธ ์ฃผ์
๐ผ https://youtu.be/f90ieBOoIYQ?si=nyOZOAt1t7tkZuJk
ํ์
๐ป ๋งฅ์ฃผ ๊ฐ๋ฐ์๋ฅผ ์ํ ํ์ ๋งํฌ
๋ ๋ง์ ๊ฐ๋ฐ ํ๊ณผ ๊ฒฝํ๋ด์ด ํ์ํ์ ๋ถ๋ค์ ์ ์์ ์ฑ๋๋ ํ์ธํด ์ฃผ์ธ์!
๐ฒLink tree
ํน์๋ผ๋ ์ ์ ๋ํด์ ๋ ์๊ณ ์ถ์ผ์๋ค๋ฉด! ๐ต๏ธ๐ป About Redping