์ฃผ์ : ๊ธฐ์กด ํ๋ก๊ทธ๋จ์ ๋ถ์ ๋ฐ ๊ฐ์
์ ์: 2022.05.17 ~ 2022.06.13
ํ๋ก๊ทธ๋จ ์ฝ๋: https://github.com/HJ2828/HarryPotterSonagi
1. ํ๋ก๊ทธ๋จ ์ฃผ์
ํ๋ก๊ทธ๋จ ์ ๋ชฉ: ํด๋ฆฌํฌํฐ ์ฐ์ฑ๋น ๊ฒ์
์ค๋ช : ํด๋ฆฌํฌํฐ ์ปจ์ ์ ์ฐ์ฑ๋น ๊ฒ์. ๋๋ค์ ์ฐฝ์์ ๋๋ค์์ ์ ๋ ฅํ๋ค. ๋ํ ํด๋ฆฌํฌํฐ ์ปจ์ ์ ๋ง๊ฒ ๊ธฐ์์ฌ๋ฅผ ์ ํํ ์ ์๋ค. ํ๋กํ์ ์ค์ ํ๋ฉด ๊ฒ์์ ์์ํ๋ค. ์ํ๋ ๋ ๋ฒจ๊ณผ, ํ๊ตญ์ด/์์ด๋ฅผ ์ ํํ์ฌ ๋ด๋ ค์ค๋ ํด๋ฆฌํฌํฐ ์ฃผ๋ฌธ์ ์ ๋ ฅํ์ฌ ์ ์๋ฅผ ์ป๋๋ค.
2. ๊ธฐ์กด ํ๋ก๊ทธ๋จ์ ๋ถ์ ๊ฒฐ๊ณผ ๋ฐ ๊ธฐํ ๋ด์ฉ
1) ๊ธฐ์กด ํ๋ก๊ทธ๋จ ๋ถ์
์ฐ์ฑ๋น ๊ฒ์
(1) ๋ถ์
โ ์ถ์ฒ: https://m.blog.naver.com/huijins3l/220754490758
โก ํด๋์ค ๊ตฌ์กฐ ๋ฐ ๊ด๊ณ
- Sonagi_Main: main ํด๋์ค
- Sonagi_Nick: ์ฒซํ๋ฉด→๊ฒ์ ์์ ์ , ์ฌ์ฉ์์ ์ด๋ฆ์ ์ ๋ ฅํ๋ ํด๋์ค
- Sonagi_GameView: ๊ฒ์ ํ๋ฉด→๊ฒ์ ๊ด๋ จ ์ฝ๋๊ฐ ๋ค์ด์๋ ํด๋์ค
- Sonagi_Thead: ๋จ์ด๋ฅผ ํ๋์ฉ ๋ฟ๋ ค์ฃผ๋ ์ฐ๋ ๋, Sonagi_GameView์ ๋ด๋ถํด๋์ค
- Sonagi_Move: ๋จ์ด ๋ด๋ ค๊ฐ๊ณ ๊ฒ์์ค๋ฒ ํ์ธํ๋ ์ฐ๋ ๋, Sonagi_GameView์ ๋ด๋ถํด๋์ค
โข ์ฌ์ฉ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(ํจํค์ง)์ ์ข ๋ฅ ๋ฐ ์๋ฏธ
- package sonagi: ์๋๊ธฐ ๊ฒ์์ ๊ด๋ จํ ์๋ฐ ํด๋์ค๋ค์ ๋ชจ์๋์
swing
- JFrame: ํ๋ ์์ ๋ง๋ค ๋ ์ฌ์ฉ
- JPanel: ์ปดํฌ๋ํธ ํฌํจํ๊ณ ์๋๋ก ์ค๊ณ๋ ์ปจํ ์ด๋
- JTextField: ์ ๋ ฅ ๊ฐ๋ฅํ ์ฐ ์ค์ ํ ์คํธ ํ๋
- JButton: ๋ฒํผ์ ๋ง๋ค ๋ ์ฌ์ฉ
- SwingConstants: ํ๋ฉด์์ ๊ตฌ์ฑ์์๋ฅผ ๋ฐฐ์นํ๊ณ ๋ฐฉํฅ ์ง์ ํ๋๋ฐ ์ฌ์ฉ๋๋ ์์๋ฅผ ์ ์ํ ์ธํฐํ์ด์ค
- JTextArea: ์ฌ๋ฌ ๋ผ์ธ์ ๊ฑธ์ณ ์ ์ถ๋ ฅ ๊ฐ๋ฅ
- JTextPane: ๊ธ์์ ์คํ์ผ์ ๋ฐ๊ฟ ์ ์๊ณ , ์ฌ๋ฌ ์ค์ ํ ์คํธ ํธ์ง ๊ฐ๋ฅ
- JList: ์๋ฃ๋ฅผ ์ถ๊ฐํ๊ณ ์ญ์ ํ ์ ์๋๋ก ํจ
awt
- Color: ์ ํํ
- Font: ๊ธ๊ผด, ์คํ์ผ, ํฌ๊ธฐ ํํ
- event.ActionEvent: ๋ฒํผ, ํ ์คํธํ๋ ๋ฑ์ ์ด๋ฒคํธ ๋ฐ์
- event.ActionListener: ๋ฐ์ํ ์ด๋ฒคํธ ์ฒ๋ฆฌ
- event.KeyEvent: ํค๋ณด๋ ์ด๋ฒคํธ ๋ฐ์
- event.KeyListener: ํค๋ณด๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ
- event.ListSelectionEvent: ๋ฆฌ์คํธ ์ด๋ฒคํธ ๋ฐ์
- event.ListSelectionListener: ๋ฆฌ์คํธ ์ด๋ฒคํธ ์ฒ๋ฆฌ
util
- Random: ๋๋ค ์๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉ
โฃ ํ๋ก๊ทธ๋จ์ ํ๋ฆ ๋ฐ ๋์ ๊ณผ์
- ๊ฒ์์ ์์ํ๋ฉด ๊ฐ์ฅ ๋จผ์ ์ฌ์ฉ์์ ์ด๋ฆ์ ์ ๋ ฅํ ์ ์๋ ํ๋ ์์ด ๋ฌ๋ค.
๋๋ค์์ ์ ๋ ฅํ๊ณ ํ์ธ ๋ฒํผ์ ๋๋ฅด๊ฑฐ๋ ์ํฐํค๋ฅผ ๋๋ฅด๋ฉด actionPerformed์ showGameView๊ฐ ํธ์ถ๋์ด, ๋๋ค์ ํ๋ฉด์ ์์ ๊ณ , ๊ฒ์ ํ๋ฉด์ ๋์ฐ๊ฒ ๋๋ค. ๋ง์ฝ, ๋๋ค์์ ์ ๋ ฅํ์ง ์์๋ค๋ฉด, ์ฌ๋ฐ๋ฅด์ง ์์ ๋๋ค์์ด๋ผ๋ ๋ฌธ์ฅ์ด ๋์จ๋ค. ์ ๋ ฅํ ๋๋ค์์ ๋๋ค์ ๋ณ์์ ์ ์ฅ๋๋ค.
๊ฒ์ ์ฐฝ์ด ๋์ค๋ฉด level์ ์ ํํ ์ ์๋ค. 1๋ถํฐ 10 ์๋๋ฐ, ๋์ ์๋ก ๋์ค๋ ๋จ์ด์ ์๊ฐ ๋ง์์ง๊ณ , ์๋๊ฐ ๋นจ๋ผ์ง๋ค. valueChange๋ฅผ ํธ์ถํ์ฌ, level์ ์ ํํ ์ ์๋ค. ๊ฒ์ ์๋๊ฐ ๊ฒ์ ์๋ ๋ณ์์ ์ ์ฅ๋๊ณ , ๊ทธ ๋ ๋ฒจ์ ๋ณด์ฌ์ค๋ค. ์ ํ ํ, ์์ ๋ฒํผ์ ๋๋ฅธ๋ค.
์์ ๋ฒํผ์ ๋๋ฅด๋ฉด, actionPerfomed๊ฐ ํธ์ถ๋๋ค. Songai_Thead๋ฅผ ํตํด ๊ฒ์ ํ๋ฉด๊ณผ ๋จ์ด๊ฐ ๋์ค๊ฒ ๋๋ค. ์์ ์ ํํ ๋ ๋ฒจ์ ๋ฐ๋ฅธ ์๋๋ก ๋จ์ด๊ฐ ๋์จ๋ค.
๋จ์ด๋ค์ด ๋ฌด์์๋ก ๋ด๋ ค์ค๋ฉด ํ ์คํธ ํ๋์ ๋จ์ด๋ฅผ ์ ๋ ฅํ์ฌ ์ํฐ๋ฅผ ๋๋ฅธ๋ค. kepPressed๊ฐ ํธ์ถ๋๋ค. ํ ์คํธํ๋์ ์ ๋ ฅ ๊ฐ๊ณผ ๋จ์ด๊ฐ ๋์ผํ์ง ๊ฒ์ฌํ๋ค. ๋์ผํ๊ฒ ์ ๋ ฅํ ๋จ์ด๋ ์ฌ๋ผ์ง๊ฒ ๋๊ณ , ์ ์๊ฐ 5์ ์ฉ ์ฌ๋ผ๊ฐ๋ค.
๋ค๋ฅธ level์ ์ ํํ๊ฒ ๋๋ฉด valueChange๊ฐ ํธ์ถ๋๊ณ , ๋ค์ ์์๋ฒํผ์ ๋๋ฅด๋ฉด ์ ์๊ฐ ์ด๊ธฐํ๋๊ณ ๊ทธ ๋ ๋ฒจ์ ๊ฒ์์ด ๋์จ๋ค.
๋จ์ด๊ฐ ๋ด๋ ค๊ฐ๋ ๋์ Sonagi_Move๊ฐ ํธ์ถ๋๋ค. y์ ๊ฐ์ ๋ณ๊ฒฝ์์ผ ๋จ์ด๊ฐ ๋ด๋ ค๊ฐ๊ฒ ํด์ค๋ค. ๋นจ๊ฐ ์ ์ ๋์ด๊ฐ๋ ๋จ์ด๊ฐ ์๊ธฐ๋ฉด, ๋นจ๊ฐ ์ฌ๊ฐํ ํจ๋์ด ํ๋์์ผ๋ก ๋ณํ๊ฒ ๋๋ค. ์ด 3๋ฒ ๋ณํ๊ฒ ๋๊ณ , ๋ชจ๋ ๋ณํ๊ฒ ๋ ๊ฒฝ์ฐ, ๊ฒ์์ด ๋๋๋ค.
๊ฒ์์ด ๋๋๋ฉด, Game Over ํจ๋์ด ๋์ ๋๋ค์๊ณผ ์ป์ ์ ์๋ฅผ ์๋ ค์ค๋ค.
2) ๊ธฐ์กด ํ๋ก๊ทธ๋จ ๊ฐ์
ํด๋ฆฌํฌํฐ ์ปจ์
๋จ์ด ๋์ ํด๋ฆฌํฌํฐ์ ๋์จ ๋ง๋ฒ ์ฃผ๋ฌธ์ ์ ๋ ฅํ๋ ์ฐ์ฑ๋น ๊ฒ์
์ฒซํ๋ฉด(๋๋ค์ ์ ๋ ฅ ์ฐฝ)
์ ์ฒด์ ์ธ UI ๊ฐ์
ํฐํธ ์์
์ปดํฌ๋ํธ ๋ฐฐ์น ์์
๋๋ค์ ์ธ ํด๋ฆฌํฌํฐ ๊ธฐ์์ฌ ์ ํํ ์ ์๋ ๋ฒํผ ์ถ๊ฐ
๋ฒํผ๊ณผ ํจ๊ป ๊ธฐ์์ฌ ๋ณ ์ด๋ฏธ์ง ๋์ค๊ฒ ์์
๊ฒ์ํ๋ฉด
์ ์ฒด์ ์ธ UI ๊ฐ์
ํฐํธ ์์
ํ๋กํ ์ถ๊ฐ (๊ธฐ์์ฌ ์ด๋ฏธ์ง์ ๋๋ค์)
๋ชฉ์จ(๋นจ๊ฐ ์ฌ๊ฐํ)์ ์ด๋ฏธ์ง๋ก ๋ณ๊ฒฝ
์ปดํฌ๋ํธ ๋ฐฐ์น ์์
๋ ๋ฒจ ์ ํ ๊ฐ์(๊ธฐ์กด ํ๋ก๊ทธ๋จ์ 10๊ฐ) ์์
๋ ๋ฒจ ์ ํ ์ธ์ ํ๋ ์ด ๋์ค ์ผ์ ์ ์ ๋ฌ์ฑ ์ ๋ค์ ๋ ๋ฒจ๋ก ๋ณ๊ฒฝ
๊ทธ๋ง๋๊ธฐ ๋ฒํผ ์ถ๊ฐ
๊ทธ๋ง๋๊ธฐ ๋ฒํผ ๋๋ฅด๋ฉด ๊ฒ์ ์ค๋ฒ ์ฐฝ ๋จ๊ฒ ์์
BGM ์ถ๊ฐ
BGM ๋๊ณ , ํฌ ์ ์๊ฒ ๋ฒํผ ์ถ๊ฐ
์์ ๋ฒํผ ํ ๊ฒ์์ค๋ฒ๊น์ง ์๊ฐ ์ธก์
์ผ๋ถ ๊ธ์์ ๊ธฐ๋ฅ ์ถ๊ฐ(๋๋ค ํ๋ฅ ) → ๊ธ์ ๋ด๋ ค์ค๋ ์๋ ๊ฐ์, ๋ฉ์ถ๊ธฐ, ๊ธ์ ์ง์ฐ๊ธฐ
๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๊ธ์ ์ ๋ณ๊ฒฝ
๊ฒ์ ์ค๋ฒ ํจ๋ ์ด๋ฏธ์ง ์ ์ฉ, ์ ๋ฐ์ ์ธ UI ๋ณ๊ฒฝ(๊ธฐ์์ฌ ์ด๋ฏธ์ง ์ถ๊ฐ, ๋ฐฐ์น ๋ณ๊ฒฝ)
์ํ/ํํ ๋ณ๊ฒฝ ๊ธฐ๋ฅ ์ถ๊ฐ
โป ๋ชฉ์๋ฆฌ ์ฃผ์(๋ฒ๋ฒ ์ ์ฃผ์)(๊ฒ์ ์งํ๊ณผ ๋ น์์ ๋์์ ํ๋ค๋ณด๋...ใ )
๊ธฐํ ๋๋น ์์ฑ๋(๋ฏธ์์ฑ ๋ชฉ๋ก๊ณผ ์์ฑ์จ(%))
๋ฏธ์์ฑ ๋ชฉ๋ก
๋ ๋ฒจ ์ ํ ์ธ์ ํ๋ ์ด ๋์ค ์ผ์ ์ ์ ๋ฌ์ฑ ์ ๋ค์ ๋ ๋ฒจ๋ก ๋ณ๊ฒฝ
-> ๋ ๋ฒจ ์ ํ์ง๊ฐ ์์ด ํ๋ ์ด ๋์ค ๋ ๋ฒจ ๋ณ๊ฒฝ์ ๋ํ ํ์์ฑ์ ๋๋ผ์ง ๋ชปํด ๊ธฐํ์์ ๋ฐฐ์ ํ๋ค.
์ผ๋ถ ๊ธ์์ ๊ธฐ๋ฅ ์ถ๊ฐ(๋๋ค ํ๋ฅ )(๊ธ์ ๋ด๋ ค์ค๋ ์๋ ๊ฐ์, ๋ฉ์ถ๊ธฐ, ๊ธ์ ์ง์ฐ๊ธฐ), ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๊ธ์ ์ ๋ณ๊ฒฝ
-> Random()์ ์ด์ฉํ์ฌ label์ ์์์ ๋ณ๊ฒฝํ๊ณ , ์ํฐ๋ฅผ ๋๋ ์ ๊ฒฝ์ฐ ์ด ํ ์คํธ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ์ ํ๋ค. ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ ์๋ ๊ฐ์๋ ๋ฉ์ถ๊ธฐ๋ ์ค๋ ๋์ sleep()์ ๋งค๊ฐ๋ณ์ ๊ฐ์ ๋ณ๊ฒฝํ๊ณ ์ ํ๊ณ , ๊ธ์ ์ง์ฐ๊ธฐ๋ label์ ์ง์ฐ๊ฑฐ๋ ๊ฐ์ถ๊ณ ์ ํ๋ค. ํ์ง๋ง ์ ์คํ๋์ง ์์๋ค. ์ํฐ๋ฅผ ๋๋ฅผ ๊ฒฝ์ฐ if๋ฌธ์ ํตํด ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ ํ์ผ๋, ์ํฐ๋ฅผ ๋๋ฅด๋ฉด ์ ๋ ฅํ label์ ์์ด ์๋ ์ฌ๋ฌ ๊ฐ์ ์์์ด ์คํ๋๋ค๋ ๊ฒ์ System.out.println()์ฝ๋๋ฅผ ์์ฑํ์ฌ ์ฝ์์ฐฝ์์ ํ์ธํ๋ค. ๋ํ ๋ฉ์ถ ๊ฒฝ์ฐ, ๋จ์ด๊ฐ ๋ฉ์ถ์์ง๋ง, ์ดํ ๋ด๋ ค์ค๋ label๋ค์ด ๋ฉ์ถ๊ณ ์๋ label๋ค์ ๊ฐ๋ฆฌ๋ ์ค๋ฅ๊ฐ ์๊ฒผ๋ค.
์์ฑ๋ฅ : 90% (๊ธฐํ์ ์์ฑํ๋ 2๊ฐ์ง ๊ธฐ๋ฅ ์ ์ธํ๊ณ ๋ชจ๋ ์์ฑํ๋ค.)
ํ๊ธฐ(์๊ฐ ๋ฑ)
๊ทธ๋์์ ์ฝ์์ฐฝ์์ ํ๊ฑฐ๋, ๊ฐ๋จํ gui๋ฅผ ๋ง๋ค์์๋๋ฐ, ์ง์ ์ํ๋ ์ด๋ฏธ์ง, ๋ ธ๋ ๋ฑ์ ๋ฃ์ด ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค ์ ์์ด์ ๋ฟ๋ฏํ๋ค. ๋จ์ด๋ฅผ txt ํ์ผ์ ํตํด ๋ถ๋ฌ์ค๊ณ ์ ํ์ผ๋ ๋ถ๋ฌ์ค๋ ๊ณผ์ ์ค ๊ธ๊ผด์ด ๊นจ์ง๋ ํ์์ด ์ผ์ด๋ ์ฝ๋๋ฅผ ์ง์ ์์ฑํ ์๋ฐ์ ์์ด์ ์์ฌ์ ๋ค. ์๊ฐ์ด ์ข ๋ ๋๋ํ๋ค๋ฉด txt ํ์ผ๋ก ๋ง๋ค์ด์ ๋ถ๋ฌ์ค๊ณ ์ถ๋ค. ํ๊ต ๋ค๋๋ฉด์ ๊ฐ์ฅ ๋ฟ๋ฏํ๋ ์๊ฐ์ด ์ธ์ ๋๊ณ ๋ฌป๋๋ค๋ฉด ์๋ฐ ํ๋ก์ ํธ๋ฅผ ํ์ ๋๋ผ๊ณ ๋งํ ๊ฒ์ด๋ค.
'Projects > Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ชจ๋ฐ์ผ์ฑํ๋ก๊ทธ๋๋ฐ ํ ํ๋ก์ ํธ (0) | 2023.06.26 |
---|---|
3D์ฝํ ์ธ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ง ํํ๋ก์ ํธ (0) | 2023.02.20 |
3D์ฝํ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ค๊ฐ ๊ณผ์ (0) | 2022.11.16 |
GURU1 Unity ํํ๋ก์ ํธ (0) | 2022.11.13 |
2D์ฝํ ์ธ ํ๋ก๊ทธ๋๋ฐ ํ๋ก์ ํธ ๊ณผ์ (0) | 2022.09.03 |