์ง๋ ์๊ฐ๊น์ง ์ก์ ๊ฒ์์ ํ์ ์์์ธ ๊ณต๊ฒฉ๊ณผ ํผ๊ฒฉ์ ๊ตฌํํ์ง๋ง, ์์์ด ๊ณต๊ฒฉํด๋ ์ ์ด ์ฐ๋ฌ์ง์ง ์์ผ๋ ๋ฌด์๋ฏธํ๊ธฐ ์ง์ด ์๊ณ ์๋ฌด๋ฆฌ ๋ง์๋ ์ฃผ์ธ๊ณต์ด ์ฐ๋ฌ์ง์ง ์์ผ๋ ์ ์ ํผํ ์ด์ ๊ฐ ์๋ค. ์ด๋ฒ ์๊ฐ์๋ HP๋ฅผ ๊ตฌํํด์ ๊ณต๊ฒฉ๊ณผ ํผ๊ฒฉ์ด ๊ทธ ์๋ฏธ๋ฅผ ๊ฐ๊ฒ ํด๋ณด์.
์ฐ์ HP๊ฐ 0์ด ๋์์ ๋ ์ฌ์ํ ์ ๋๋ฉ์ด์ ๋ถํฐ ๋ง๋ค์.
1. player์ฌ์ ์ด๊ณ AnimationPlayer๋ ธ๋๋ฅผ ์ ํํ ๋ค์, dead๋ผ๋ ์ด๋ฆ์ ์๋ก์ด ์ ๋๋ฉ์ด์ ์ ์์ฑํ๋ค.
2. Sprite๋ ธ๋์ texture์์ฑ์ ๋ํ ํธ๋์ dead์ ๋๋ฉ์ด์ ์ ์ถ๊ฐํ๋ค.
3. ํคํ๋ ์ 2๊ฐ๋ฅผ 0.5์ด ๊ฐ๊ฒฉ์ผ๋ก ๋ฐฐ์นํ๋ค.
4. graphic/character/main_characterํด๋์ dead_000.png์ dead_001.png ์ด๋ฏธ์ง๋ฅผ ๊ฐ ํคํ๋ ์์ ํ ๋นํ๋ค.
dead์ ๋๋ฉ์ด์ ์ ์์ฑํ์ผ๋ฉด ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด player.gd์คํฌ๋ฆฝํธ์ ์ฝ๋๋ฅผ ์ถ๊ฐ ์์ฑํ์ฌ ์ค์ hp๋ฅผ ๊ตฌํํด๋ณด์.
1. hp๋ผ๋ ์ด๋ฆ์ intํ์ ๋ณ์๋ฅผ ์ ์ธ
2. hitํจ์๋ฅผ ์์
3. _processํจ์์ 2์ค ์ถ๊ฐ
4. _physics_processํจ์์๋ 2์ค ์ถ๊ฐ
์ด์ ๊ฒ์์ ์คํํ๊ณ ์ ์บ๋ฆญํฐํํ ๋ค๊ฐ๊ฐ 5๋ฒ ๊ณต๊ฒฉ์ ๋ฐ์ผ๋ฉด ์ฃฝ์ด๋ฒ๋ฆฌ๋ ์ฃผ์ธ๊ณต์ ๋ณผ ์ ์๋ค.
์ฃผ์ธ๊ณต ์บ๋ฆญํฐ์ hp๊ตฌํ ์๋ฃ.
์ฃผ์ธ๊ณต ์บ๋ฆญํฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ์บ๋ฆญํฐ๋ hp๊ฐ 0์ด ๋์์ ๋ ์ฌ์๋ ์ฌ๋ง ์ ๋๋ฉ์ด์ ์ ๋ง๋ค์ด์ฃผ์.
1. enemy์ฌ์ ์ด๊ณ AnimationPlayer๋ ธ๋๋ฅผ ์ ํํ ๋ค์, dead๋ผ๋ ์ด๋ฆ์ ์๋ก์ด ์ ๋๋ฉ์ด์ ์ ์์ฑํ๋ค.
2. Sprite๋ ธ๋์ texture์์ฑ์ ๋ํ ํธ๋์ dead์ ๋๋ฉ์ด์ ์ ์ถ๊ฐํ๋ค.
3. ํคํ๋ ์ 6๊ฐ๋ฅผ 0.1์ด ๊ฐ๊ฒฉ์ผ๋ก ๋ฐฐ์นํ๋ค.
4. graphic/character/enemyํด๋์ dead_000.png ~ dead_004.png์ 5๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์ฒซ ํคํ๋ ์๋ถํฐ ์ฐจ๋ก๋๋ก ํ ๋นํด์ค๋ค.
5. ์ด๋ฏธ์ง๋ 5๊ฐ์ธ๋ฐ ํคํ๋ ์์ 6๊ฐ์ด๋ค. ๋ง์ง๋ง ํคํ๋ ์์ ์ ์บ๋ฆญํฐ๊ฐ ์์ ํ๋ฉด์์ ๋ณด์ด์ง ์๋๋ก ์ด๋ฏธ์ง๋ฅผ ํ ๋นํ์ง ์์ ๊ฒ์ด๋ค. ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด ๋ง์ง๋ง ํคํ๋ ์์ ์ ํํ ์ํ์์ ์ธ์คํํฐ๋ฅผ ๋ณด๊ณ value ์ค๋ฅธ์ชฝ์ โจ๋ชจ์ ๋ฒํผ์ ํด๋ฆญํ์.
๊ทธ ๋ค์ ๋ํ๋ ๋ฉ๋ด์์ Clear๋ฅผ ํด๋ฆญํ๋ฉด ๋๋ค.
๊ทธ๋ผ ์ด๋ ๊ฒ ํคํ๋ ์์ ํ ๋น๋ ๊ฐ์ด ์ง์์ง๋ค.
์ ๋๋ฉ์ด์ ์ด ์ ๋๋ก ๋ง๋ค์ด์ก๋์ง ์ฌ์๋ฒํผ์ ๋๋ฌ ํ์ธ ํ ๋ฒํ๊ณ
enemy.gd์คํฌ๋ฆฝํธ์๋ ์ฝ๋๋ฅผ ์ถ๊ฐ ์์ฑํ์ฌ ์ ์บ๋ฆญํฐ์ hp๋ฅผ ๊ตฌํํด๋ณด์.
1.hp๋ผ๋ ์ด๋ฆ์ intํ์ ๋ณ์๋ฅผ ์ ์ธ
2._processํจ์์ 2์ค ์ถ๊ฐ
3._physics_processํจ์์๋ 2์ค ์ถ๊ฐ
4.๋ง์ง๋ง์ผ๋ก hitํจ์๋ฅผ ์์
์ด์ ๊ฒ์์ ์คํํ๊ณ ์ ์ 3๋ฒ ๊ณต๊ฒฉํ๋ฉด ํฉ๋ ๋ ค ์ฌ๋ผ์ง๋ ์ ์บ๋ฆญํฐ๋ฅผ ๋ณผ ์ ์๋ค.
์ด๋ ๊ฒ ์ ์บ๋ฆญํฐ๊น์ง hp์ ์ฌ๋ง ์์คํ ์ ๊ตฌํ์ ์๋ฃํ๋ค. ๊ทธ๋ฐ๋ฐ, ํ์ฌ๋ก์๋ ์ฃฝ๊ณ ๋์ ๊ฒ์์ ์ด์ด๊ฐ๋ ค๋ฉด ํ๋ก๊ทธ๋จ ์์ฒด๋ฅผ ์ฌ์์ ํ๋ ์๋ฐ์ ์๋ค.
๊ทธ๋ฌ๋ ์ฌ๋ง์ ํ์ฑํ ๋๋ ์ฌ์์ ๋ฒํผ์ ๋ง๋ค์ด์ฃผ์. player์ฌ์ CanvasLayer๋ผ๋ ๋ ธ๋๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ ๊ทธ ํ์์ Control๋ ธ๋๋ฅผ ๋ ์ถ๊ฐํด์ค๋ค.
- CanvasLayer๋ ธ๋๋ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ์๋ฉด 2Dํ๋ฉด ์์ ๋ฎ์ด ์์ฐ๋ ์๋ก์ด 2Dํ๋ฉด์ ๋ง๋ค์ด ์ฃผ๋ ๋ ธ๋์ด๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์นด๋ฉ๋ผ ๋ ธ๋์ ์ํฅ ๋ฐ์ง ์๊ธฐ ๋๋ฌธ์ ํ๋ฉด์ด ์์ง์ฌ๋ ๊ทธ ํ์์ ๋ ธ๋๋ค์ ์์น๋ฅผ ์ ์งํ ์ ์๋ค.
- Control๋ ธ๋๋ ์ต์ปค ์์คํ ์ ํตํด ์์น๋ฅผ ์ก๋, GUI๋ฅผ ๊ตฌํํ๋๋ฐ ํนํ๋ ์ข ๋ฅ์ ๋ ธ๋์ด๋ค. ์ต์ปค ์์คํ ์ด ๋ฌด์์ธ์ง์ ๋ํ ์ค๋ช ์ ์ถํ ๊ณ์ํ๊ฒ ๋ค.
Control๋ ธ๋๋ ์ด๋ฆ์ GameOver๋ก ์์ ํด์ฃผ์.
GameOver๋ ธ๋๋ฅผ ์ ํํ ์ํ์์ 2D์คํฌ๋ฆฐ ๋ฐ๋ก ์์ ํด ๋ฐ๋ฅผ ๋ณด๋ฉด ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด ์ฐ๋์ ๋๊ทธ๋ผ๋ฏธ ์์ ์ญ์๊ฐ ๋ค์ด๊ฐ ๋ฒํผ์ ์ฐพ์ ์ ์๋๋ฐ ํด๋ฆญํ์. ๊ทธ๋ฆฌ๊ณ ๋จ๋ Anchor preset๋ฉ๋ด์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋์ ๊ฝ ์ฐฌ ์ฌ๊ฐํ ๋ชจ์ ๋ฒํผ์ ํด๋ฆญํ์.
GameOver๋ ธ๋๊ฐ ๊ฒ์ ํ์ ์์ญ์ ๊ฝ ์ฑ์ฐ๋๋ก ์ฌ์ด์ฆ์ ์์น๊ฐ ์๋์ผ๋ก ์กฐ์ ๋ ๊ฒ์ด๋ค.
์ด์ GameOver๋ ธ๋ ํ์์ Button๋ ธ๋๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ
์ฌ์ด์ฆ๋ฅผ ์ ๋นํ ์กฐ์ ํด์ฃผ์.
GameOver๋ ธ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก Anchor Preset๋ฒํผ์ ํด๋ฆญํ๋๋ฐ, ์ด๋ฒ์๋ ์์์ 2๋ฒ์งธ, ์ผ์ชฝ์์ 2๋ฒ์งธ ์๋ฆฌ์ ์ฌ๊ฐํ ๋ชจ์ ๋ฒํผ์ ํด๋ฆญํ์. ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด Button๋ ธ๋๊ฐ ๊ฒ์ ํ์์์ญ ์ ์ค์์ ์์นํ๊ฒ ๋ ๊ฒ์ด๋ค.
Button๋ ธ๋์ ์ธ์คํํฐ์์ text์ โ์ฌ์์โ์ด๋ผ๊ณ ์ ๋ ฅํ๊ณ
[Theme Overrides]-[Font Sizes]-[Font] ์์ฑ์ ์ฒดํฌ๋ฐ์ค๋ฅผ ํ์ฑํํ๊ณ ๊ทธ ๊ฐ์ 100์ผ๋ก ์ค์ ํ์ฌ ๋ฒํผ์ โ์ฌ์์โ์ด๋ผ๋ ์ปค๋ค๋ ๊ธ์๋ฅผ ๋ํ๋ด์.
์ด์ ๋ฒํผ์ด ์๋ํ ์ ์๋๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์๊ฐ์ด๋ค. scriptํด๋๋ฅผ ์ฐํด๋ฆญ, [Create New]-[Script]๋ฉ๋ด๋ฅผ ์ ํํ์ฌ ์๋ก์ด ์คํฌ๋ฆฝํธ ํ์ผ์ ์์ฑํด์ฃผ์.
Inherits๋ Button์ผ๋ก ์ง์ ํด์ฃผ๊ณ , ์คํฌ๋ฆฝํธ ํ์ผ์ ์ด๋ฆ์ restart_button์ผ๋ก ํ ๋ค์ [Create]๋ฒํผ์ ๋๋ฅด๋ฉด ๋๋ค.
์์ฑ๋ ์คํฌ๋ฆฝํธ๋ฅผ ํ์ผ์์คํ ์์ Button๋ ธ๋๋ก ๋๋๊ทธํ์ฌ ๋ถ์ฌ์ค๋ค.
ํด๋น ์คํฌ๋ฆฝํธ๋ฅผ ์ด๊ณ ๋ด์ฉ์ ์์ฑํด์ฃผ์.
๊ทธ๋ฆฌ๊ณ ์ฌ์์ UI๋ ์ฃผ์ธ๊ณต ์บ๋ฆญํฐ๊ฐ ์ฌ๋งํ๊ธฐ ์ ์ ๋ณด์ด๋ฉด ์ ๋๋ ์ฌ ๋ ์์ GameOver๋ ธ๋ ์ค๋ฅธ์ชฝ์ ๋ ๋ชจ์ ๋ฒํผ์ ํด๋ฆญํ์ฌ ์จ๊ฒจ์ฃผ์. (๋๋ ์ธ์คํํฐ์์ visible์์ฑ์ ๊บผ๋ ๋๋ค. ๋์ ์์ ํ ๊ฐ์ ๋์์ ํด๋นํ๋ค)
์ด์ player.gd ์คํฌ๋ฆฝํธ๋ฅผ ์ด๊ณ active_game_overํจ์์ ๊ทธ ๋ด์ฉ์ ์ถ๊ฐํด์ฃผ์.
๋ง์ง๋ง์ผ๋ก dead์ ๋๋ฉ์ด์ ์ ๋๋ถ๋ถ์์ ๋ฐฉ๊ธ ์ฝ๋ฉํ active_game_overํจ์๊ฐ ์๋ํ๋๋ก Call Method Track์ ์ถ๊ฐํ๊ณ ํคํ๋ ์์ ํด๋น ํจ์๋ฅผ ํ ๋นํด์ฃผ๋ฉด ์ฌ์์ ๋ฒํผ ๊ตฌํ ์๋ฃ๋ค.
์ด์ ์ ์บ๋ฆญํฐ์๊ฒ ๋ง์ ์ฃฝ์ผ๋ฉด ํ์ฌ ์คํ ์ด์ง๋ฅผ ์ฌ์์ํ ์ ์๋ค.
HP๋ ๊ตฌํํ๊ณ ์ฌ์์๋ ๊ตฌํํ๋ค. ๋ค ์ข์๋ฐ, ํ์ฌ HP๊ฐ ์ผ๋ง๋ ๋จ์๋์ง ์ ์ ์๋ค๋ ๊ฒ์ ๋ณ๋ก ์ข์ง ์์ ๋ณด์ธ๋ค. ํ์ฌ ๋จ์ HP๋ฅผ ํ์ํ๋ HP๊ฒ์ด์ง๊น์ง๋ง ๊ตฌํํ๊ณ ๋๋ด์. ์๋ ๋งํฌ์์ hp_gauge.pngํ์ผ์ ๋ค์ด๋ฐ์.
https://i-mega.itch.io/sideview-dummy-graphics
graphicํด๋ ํ์์ uiํด๋๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ hp_gauge.pngํ์ผ์ ๋ฃ์ด์ค๋ค.
player์ฌ์ CanvavsLayer๋ ธ๋ ํ์์ Control๋ ธ๋๋ฅผ ํ๋ ๋ ์์ฑํด์ฃผ๊ณ ์ด๋ฆ์ UI๋ก ์์ ํด์ค๋ค.
GameOver๋ ธ๋ ํ์์ ์ฌ์์ ๋ฒํผ์ด ๋ค๋ฅธ UI์ ๊ฐ๋ ค์ง ์ฐ๋ ค๊ฐ ์์ผ๋ UI๋ ธ๋๋ฅผ GameOver๋ ธ๋ ๋ฐ๋ก ์์ชฝ์ผ๋ก ๋๋๊ทธํ์ฌ ํ์๋๋ ์์๋ฅผ ๋ฏธ๋ฆฌ ๋ฐ๊ฟ์ฃผ์.
UI๋ ธ๋๋ฅผ ์ ํํ๊ณ Anchor preset์ ๊ฝ ์ฐฌ ์ฌ๊ฐํ ๋ชจ์์ผ๋ก ์ค์ ํ์ฌ ๊ฒ์ ํ์ ์์ญ์ ๊ฝ ์ฑ์ฐ๊ฒ ๋ง๋ค์ด์ฃผ์.
์ด์ HP๊ฒ์ด์ง๋ฅผ ํํํ๊ธฐ ์ํ์ฌ TextureProgressBar๋ ธ๋๋ฅผ UI๋ ธ๋ ํ์์ ์์ฑํด์ฃผ์.
์ธ์คํํฐ๋ฅผ ๋ณด๊ณ [Textures]-[progress]์์ฑ์ ๋ค์ด๋ฐ์ hp_gauge.png ์ด๋ฏธ์ง๋ฅผ ํ ๋นํ ํ
value์์ฑ์ max_value์์ฑ๊ณผ ๊ฐ๊ฒ 100์ผ๋ก ์ค์ ํด์ค๋ค.
์คํฌ๋ฆฐ์ท์ฒ๋ผ HP๊ฒ์ด์ง๊ฐ 2D์คํฌ๋ฆฐ์์ ๋ณด์ผ ๊ฒ์ด๋ค.
๋ค๋ฅธ ๋ ธ๋์ ํท๊ฐ๋ฆฌ์ง ์๋๋ก TextureProgressBar์ ์ด๋ฆ์ HPGauge๋ก ์์ ํด์ฃผ๊ณ
Anchor preset์ ์ ์ผ ์ผ์ชฝ, ์์์ 3๋ฒ์งธ๋ก ์ง์ ํด์ฃผ์.
HP๊ฒ์ด์ง๊ฐ HP๊ฒ์ด์ง์์ ๋ ํ์คํ ํ๋ ์ด์ด์๊ฒ ์ ๋ฌํ๊ธฐ ์ํ์ฌ Label๋ ธ๋๋ฅผ UI๋ ธ๋ ํ์์ ์ถ๊ฐํด์ฃผ์. Label๋ ธ๋๋ Control๋ ธ๋์ ์ผ์ข ์ธ๋ฐ ํ๋ฉด์ ํ ์คํธ๋ฅผ ํ์ํด์ฃผ๋ ์ญํ ์ ํ๋ค.
Label๋ ธ๋์ ์ด๋ฆ์ HPLabel๋ก ์์ ํ๊ณ
์ธ์คํํฐ์ text์์ฑ์ HP๋ผ๊ณ ์ ๋ ฅํ์.
๊ธ์จ ํฌ๊ธฐ๋ฅผ ํค์ฐ๊ธฐ ์ํ์ฌ [Theme Overrides]-[Font Sizes]-[font_size] ์์ฑ์ ํ์ฑํํ๊ณ 48์ ์ ๋ ฅํ๊ณ
๊ธ์จ๋ฅผ ๋ ์๋ณด์ด๊ฒ ํ๊ธฐ ์ํด [Theme Overrides]-[Constants]-[outline_size] ์์ฑ์ ํ์ฑํํ๊ณ 8์ ์ ๋ ฅํ์ฌ ํ ๋๋ฆฌ๋ฅผ ํ์ํ ๋ค์
ํ ๋๋ฆฌ์ ์์ด ๊ธ์์ ์๊ณผ ๊ฒน์น์ง ์๋๋ก [Theme Overrides]-[Colors]-[font_outline_color] ์์ฑ์ ํ์ฑํํ๊ณ ์ํ๋ ์์์ผ๋ก ์ค์ ํด์ค๋ค.
๊ธ์์ ๋ํ ์ค์ ์ ๋๋ง์ณค์ผ๋ฉด HPLabel์ Anchor preset์ HPGauge์ ๊ฐ๊ฒ ์ค์ ํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ HPGauge๋ ธ๋๊ฐ HPLabel๊ณผ ๊ฒน์น์ง ์๋๋ก ์ค๋ฅธ์ชฝ์ผ๋ก ์กฐ๊ธ ์ฎ๊ฒจ์ค๋ค. 2D์คํฌ๋ฆฐ์์ ์ ๋นํ ๋๋๊ทธํด๋ ๋๊ณ ์คํฌ๋ฆฐ์ท์ฒ๋ผ ์ธ์คํํฐ์์ position์์ฑ์ ๊ตฌ์ฒด์ ์ธ ๊ฐ์ ์ ๋ ฅํด๋ ๋๋ค.
์ด์ player.gd์คํฌ๋ฆฝํธ๋ฅผ ์ด์ด์ HP๊ฒ์ด์ง๊ฐ ์ค์ ์๋ํ๊ฒ ํด๋ณด์. ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด ๋ณ์ ์ ์ธ ์ฝ๋๋ฅผ ์ถ๊ฐํ๊ณ
_readyํจ์์๋ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ
_processํจ์์๋ ์ฝ๋๋ฅผ ์ถ๊ฐ๋ก ์์ฑํด์ฃผ๋ฉด HP๊ฒ์ด์ง ๊ตฌํ ์๋ฃ๋ค.
๊ฒ์์ ์ผ๊ณ ์ ์บ๋ฆญํฐ์๊ฒ ๋ง์๋ณด์. ๊ณผ์ ์ ์ ๋ฐ๋ผ์๋ค๋ฉด ์ผ์ชฝ ์๋์
HP๊ฒ์ด์ง๊ฐ ์ฃผ์ธ๊ณต ์บ๋ฆญํฐ์ ํ์ฌ HP๋ฅผ ํ์ํด์ฃผ๋ ๋ชจ์ต์
๋ณผ ์ ์์ ๊ฒ์ด๋ค.
๋๊ธ 0