์... ํ 10์ผ์ ์ฌ์๋๋ ์๊ดด๊ฐ์ด ์ฉ๋ค์ฌ.
ํ๋๊ฐ ๋ป๋์ ๋ณต๊ตฌ ์ ํธ์ ๋ฐ๋ค๊ฐ
์ด์ํ ์คํํ์ผ์ ์๋ชป๋๋ ๋๋ ์ ์ฑ์ฝ๋๊ฐ ํญ๋ฐ
-> ์ ์ฑ์ฝ๋๊ฐ ํฌ๋กฌ์ ๋จนํต์ผ๋ก ๋ง๋ฌ
-> ํฌ๋กฌ ์ฌ์ค์น ํด๋ ์๋จ
-> ์ ์ฑ์ฝ๋ ๊ฒ์ฌ, 3~5๊ฐ ์ ๋์ ์ ์ฑ์ฝ๋ ๊ฒ์ฌํด ์ด์ฉํด์ ์ ์ฒด๊ฒ์ฌ
ํด์ ์ ์ฑ์ฝ๋ 80~100๊ฐ ์ญ์ ํ๊ณ ๋์...
์ดํด๋ฆฝ์ค๊ฐ ์๋จ -> ์ดํด๋ฆฝ์ค ์๋ฆฌ
์.. ์๋๊ฒ ์ด ์๋ธ ๊ฐ๋ฐ๋จธ์ ์ ๋ง๋๋๊ฒ ํ์ํ๋ค -> ๋งฅ๋ถ์ ์๋์ฐ ์ค์น?
์ด ์๊น๋ฆฌ๋ค? ํํฐ์ ๋ง๋ค๊ณ ๋ถํธ๋ก๋๋ฅผ ....
์ฌํผ ์๋ง์ ์ฝ์ง์ ํ๊ณ ๋์์์ต๋๋ค!
-----------------------------------
๊ทธ๋ฆผ 4๊ฐ ๋ฃ์ ๋ถ๋ ๊ฐ์ข๋ฅผ ์ผ์๋๋ฐ ํฌ๋กฌ์ด ์ฃฝ์ผ๋ฉด์ ๊ฐ์ด ๋นจ๋ ค๋ค์ด๊ฐ๋ค์
๊ทธ๋๋ ์ค๋๋ง์ ์์ ์ก์์ผ๋ ๊ฐ์ข๋ฅผ ํด๋ด ์๋ค. ์ผ์ฃผ์ผ ์์ฑ์ ์ด๋ฏธ ๊ธ๋ ๊ตฐ์.
์ง๋ ๊ฐ์ข์์ ์ด๋ฒ๊ฐ์ข์์๋ ์ธํ๋งค๋์ , ์์ํ ๋งค๋์ ๋ฑ์ ์ฌ์ฉํ๋ค๊ณ ํ์๋๋ฐ..
์ธํ๋งค๋์ ๋ ์ ๋ํฐ์ ๋ฃ์ผ๋ ๋ฌดํ๋ฃจํ๊ฐ ๋์ด๋ฒ๋ ค์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ผ๋ ์ง
ํด๊ฒฐ๋ฒ์ ์ฐพ์์ผ ๋ ๊ฒ ๊ฐ์์. ๊ทธ๋ฌ๋ ์ฐ์ ๋์ ๋งค๋์ ์์ ์ด๊ธฐํํ
ํ๋ฉด์ ๊ทธ๋ ค์ฃผ๋ ์์ํ ๋งค๋์ ๋ถํฐ ํด๋ณด๋๋ก ํฉ์๋ค.
1. ์์ํ ๋งค๋์ ย
์์ํ ๋งค๋์ ๊ธฐ๋ณธํ์ ๋๋ค.
์ด ์์ค๋ ์งํํ๋ฉด์ ๋ง์ด ์์ ํ๊ฒ ๋ฉ๋๋ค.
์์ํ ๋งค๋์ ๋ ์ง๋๊ฐ์์์
์ธํ --------------------------------------> ์์ํย
์ธํ <------------------------------------- ย ์์ํ
์์ ๋์์ผ๋ก ๊ทธ๋ ค์ ์ค๋ช ํ ๊ฒ๊ณผ ๊ฐ์ด.
์ถ๋ ฅ ์ ๋ฌธ ํด๋์ค์ ๋๋ค.
ํจ์๋ฅผ ๋ณด๋ฉด ์์๋ฏ์ด
๋ฐ๋ฅ ๊ทธ๋ฆฌ๊ธฐ
๋ฒฝ์ด๋ ๊ฑฐ๋ฏธ์ค ๊ทธ๋ฆฌ๊ธฐ
์์ดํ ๊ทธ๋ฆฌ๊ธฐ
๋ชฌ์คํฐ ๊ทธ๋ฆฌ๊ธฐ
์ก!์ ! ๊ทธ๋ฆฌ๊ธฐ -> ์ดํ ์ค๋ช
ํจ!๊ณผ! ๊ทธ๋ฆฌ๊ธฐ -> ์ดํ ์ค๋ช
ํ๋ ์ด์ด ๊ทธ๋ฆฌ๊ธฐ ( ํ๋ ์ด์ด ์บ๋ฆญํฐ )
์์ผ ๊ทธ๋ฆฌ๊ธฐ
๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ์์ต๋๋ค. ์ด ์์ํ ๋งค๋์ ๋ ์ธํฐํ์ด์ค
(์ด๋ณด์๋ฅผ ์ํ ์ค๋ช :ย ํจ์ ํ๋ผ๋ฏธํฐ ํ์์ด๋ ๋ฆฌํด๊ฐ๋ฑ ์ฃผ๊ณ ๋ฐ์ ๋ฐ์ดํฐ ํ์๋ง ๋ง์ถฐ๋๋ ์ญํ )
์ญํ ๋ง ํ๊ณ ์ค์ ๋ก ์ฌ์ฉํ์ง๋ ์์ต๋๋ค.
์๋ฅผ๋ค์ด๋ด ์๋ค.
์ ๊ฐ ์๋ง์ผ๋ก ๊ฐ๋์ฐจ์ ๊ฐ์ ๊ฒ์๋ฐฉ์์ผ๋ก 3D ํ๋ทฐ๊ฒ์ํ๊ณ , 2D ํ๋ทฐ๊ฒ์ํ๊ณ , ํ ์คํธ ๋จธ๋ ๊ฒ์์ ๊ฐ์ด ๋ง๋ค๊ณ
์ถ๋ค๊ณ ํด๋ด ์๋ค.
๊ทธ๋ฌ๋ฉด ์์ํ ๋งค๋์ ๋ฅผ ์์๋ฐ์์
Graphical3DOutputManager
Graphical2DOutputManager
TextOutputManager
์ด๋ฐ์์ผ๋ก ๋ง๋ค ์๋ ์๋๊ฑฐ์ฃ
Graphical3DOutputManager์์ drawFloor๋ฅผ ํธ์ถํ๋ฉด
๋ณต์ ํํ๋ก ๋ฐ๋ฅ์ ๊ทธ๋ ค์ฃผ๊ณ ๋ฐ๋ฅ์ด ๋ฌผ์ด๋ฉด ๋์ด๋ฅผ ์ข ๋ฎ๊ฒ ๊ทธ๋ฆฐ๋ค๊ฑฐ๋ ํด์ค์ ์๊ฒ ์ฃ
Graphical2DOutputManager๋ ํํํ ํ์ผ์ ๊ทธ๋ ค์ค๊ฒ๋๋ค.
TextOutputManager๋ "[๋ถ,๋ถ๋,๋ถ์, ๋จ,๋จ๋,๋จ์] ๋ฐฉํฅ์ ๋ญ๋ ๋ฌ์ง๋ค."
์ด๋ ๊ฒ ์ถ๋ ฅํด์ฃผ๊ฒ์ฃ .
๋์ ์ด ์์ํ ๋งค๋์ ๋ฅผ ์ง์ ์ฌ์ฉํ DungeonManager๋ ์ด๊ฒ ํ ์คํธ/3D/2D์ถ๋ ฅ์ ํ๋์ง ์๊ด์๊ณ
outManager.drawFloor(nowMap);
๊ณผ ๊ฐ์ด ๋งต์ ๋ณด๋ง ์ถ๋ ฅํด์ฃผ๋ฉด ๋์ฃ .
์ธํ๋งค๋์ ๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก
ํค๋ณด๋์ ๋ ฅ๋งค๋์ , ํธ๋ํฐ ํฐ์น ๋งค๋์ ๋ก ๋๋ ์ ์ฌ์ฉ๊ฐ๋ฅํ ๊ธฐ๊ธฐ๊ฐ ๋ฌ๋ผ์ง๋ฉด
์ ๋ ฅ๋งค๋์ ๋ง ๋ฐ๋ก ๋ง๋ค๋ฉด ๋๊ฒ ํ ์๊ฐ์ ๋๋ค.
์๋์ Effect(ํจ๊ณผ) ํด๋์ค์ Actionํด๋์ค๋ฅผ ๋ด ์๋ค.
์์ง ์ธ๋ถ์ ์ธ ๋ด์ฉ์ ๊ตฌํ์ ์ํ์ง๋ง ์ด๊ฒ๋ ์์ ์์ํ๋งค๋์ ํด๋์ค์ฒ๋ผ
์ค์ ๋ก ์ฌ์ฉ๋๋ ํด๋์ค๋ ์๋๋๋ค.
์ธํฐํ์ด์ค ์ฉ๋์ฃ .
์ดํํธ๋ ์คํฌ์ดํํธ๋ ๋ฌผ์ฝ๋จน๋ ์ดํํธ, ๋ ๋ฒจ์ ์ดํํธ๋ฑ ์ด๋ค ์ดํํธ๋ฅผ
์์ํ ๋งค๋์ ๊ฐ ๊ทธ๋ ค์ค์ผ ํ ์ง๋ฅผ ๋ํ๋ด๋ ๋ฐ์ดํฐ ํด๋์ค์ ๋๋ค.
์ 1)
[ 33,25์ ์๋ ํ๋ ์ด์ด๊ฐ ๋ฌผ์ฝ์ ๋จน๋ ์ดํํธ (์์ดํ ์ดํํธํด๋์ค์ ๋ฐ์ดํฐ)]
->
[ 33,25 ์ขํ์ ๋นจ๊ฐ์ ๋น์ด ์ ๋ฉธํ๊ฒ ํ๋ค, (๊ทธ๋ํฝ2D์์ํ๋งค๋์ ํด๋์ค์ drawEffectํจ์๊ฐ ํ ์ผ) ]
์ 2)
[ 33,25์ ์๋ ํ๋ ์ด์ด๊ฐ ๋ฌผ์ฝ์ ๋จน๋ ์ดํํธ (์์ดํ ์ดํํธํด๋์ค์ ๋ฐ์ดํฐ)] - ๋์ผ
->
[ "๋น์ ์ด ๋ฌผ์ฝ์ ๋ง์์, ๋ชฉ์ ํผ๋ถ๋ฅผ ๋ซ๊ณ ๋ถ์ ์ฌ๊ด์ด ๋ฒ์ฉ์๋ค." ( ํ ์คํธ์์ํ๋งค๋์ ์ drawEffect๊ฐ ํ ์ผ)ย ]
์ก์ ์ ์ดํํธ๋ ๋น์ทํ์ง๋ง ์บ๋ฆญํฐ( ํ๋ ์ด์ด / ๋ชฌ์คํฐ Characterํด๋์ค )์ ๋์์ ์์ํ๋งค๋์ ํํ ์ ๋ฌํ๋
๋ชฉ์ ์ ํด๋์ค์ ๋๋ค.
[ ํ๋ ์ด์ด๊ฐ x ์ขํ +1, y์ขํ +1์์น๋ก ์ด๋ ]
->
[ ํ๋ฉด์ ํ๋ ์ด์ด ๊ทธ๋ฆผ์ x,y 1,1๋งํผ ์์น๋ก ์ด๋์ํจ๋ค ] - ๊ทธ๋ํฝ 2D์์ํ ํด๋์ค์ ๊ฒฝ์ฐ
์ 3)
์ํฉ
ํ๋ ์ด์ด๊ฐ x์ขํ +1, y์ขํ +0 ์์น์ ์ฅ๋ฅผ ๊ณต๊ฒฉ, ๋ฐ๋ฏธ์ง๋ฅผ 3 ๋ฐ๋๋ค.
(์์๋๋ก)
[์ก์ (ํ๊ฒฉ_์ด๋), ํ๋ ์ด์ด๊ฐ ์ฐ์ธก์ผ๋ก ๋น ๋ฅด๊ฒ 0.5๋งํผ ์ด๋ํ๋ค๊ฐ ์ฒ์ฒํ ์๋ ์๋ฆฌ๋ก ๋๋์์จ๋ค]
+[์ดํํธ(ํ๊ฒฉ), ์ฅ ์บ๋ฆญํฐ ์์ ํ๊ฒฉ ์ด๋ฏธ์ง๋ฅผ 0.5๋์ ๋์ ๋ค๊ฐ ์ฌ๋ผ์ง๊ฒํ๋ค]
+[์ก์ (ํผ๊ฒฉ), ์ฅ ์บ๋ฆญํฐ๊ฐ ์ฐ์ธก์ผ๋ก 0.5๋งํผ ํ๊ฒจ๋๊ฐ๋ค๊ฐ ๋์์จ๋ค ]
[์ดํํธ(์๋ฌผ_์ถํ), ์ฅ ์บ๋ฆญํฐ์ ์๋์๋ฆฌ์์ x์ขํ 0.5๋ฐฉํฅ์ผ๋ก 0.3์ด๋์ ํ๋ฐฉ์ธ์ด ํ๊ฒ ๋ง๋ฌ]
์ด๋ฐ์์ ๋๋ค.
์ดํํธ์ ํจ๊ณผ๋ ๋์ค์ ๊ทธ๋ฆฌ๋๋กํ๊ณ ( ์ด๊ฒ ์ข ๊ธธ์ด์ )
์ฐ์ ํ๋ฉด์ ๋ฐ๋ฅ/๋ฒฝ/ํ๋ ์ด์ด/๋ชฌ์คํฐ๋ฅผ ๊ทธ๋ ค๋ณด๋๋ก ํฉ์๋ค.
2. ์คํ๋ผ์ดํธ
๊ฒ์์์ ์ฌ์ฉ๋ ์ด๋ฏธ์ง์ ๋๋ค.
๋์ ํฌ๋กค ์คํค์คํ๋ผ๋ ๋ก๊ทธ๋ผ์ดํฌ ๊ฒ์์ด ์ฌ์ฉํ( ์ง๊ธ์ ์๋นํ ๊ฐ์ ๋จ)
rltile๋ผ๋ ์์ ์ด์ฉ ๋ก๊ทธ๋ผ์ดํฌ ํ์ผ์ ์ ํ๋ก์ ํธ (ย cc0๋ผ์ด์ผ์คย )
ํ์ผ์ ๊ฐ์ ธ์์ต๋๋ค.
ํด๋น ํ๋ก์ ํธ์์๋ ์ด๋ค๊ฑด ๋ผ์ด์ผ์ค๊ฐ ๋ช ํํ์ง ์์ผ๋ ๊ตฌ๋ถํด์ ์ฌ์ฉํ์ธ์
์์๋๋ก ๊ณ ์์ด์ ๋ชฌ์คํฐ
ํฌ์ 5์ข ๋ฅ
์ค๋ฅด๋/๋ด๋ฆฌ๋ ๊ณ๋จ
๋ฐ๋ฅ/๋ฒฝ
์ ํ์ ํ์ํ ์ปค์
( ์๊ฐ๋ก ํ๋ฉด ๊ฐ๋ ค์ค ๊ฒ์ ํ์ผ์ด ๋น ์ก์ต๋๋ค. ๋ค์์ ์ถ๊ฐํ๋๋ก ํ์ฃ )
์ค์ ์์ ์ฉ ํ์ผ
์ธํ
๋ฒ
ํด๋น ์คํ๋ผ์ดํธ ์ํธ๋ฅผ ๋๋ฅด๊ณ
ํฝ์ ํผ ์ ๋ 32, ์คํ๋ผ์ดํธ ๋ชจ๋ multiple
๋ฐ๋งต ์์ฑ์ํจ. ํํฐ๋ชจ๋ no filter
๋งฅ์ค์ฌ์ด์ฆ 256์ผ๋ก ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํ๋ผ์ดํธ ์๋ํฐ๋ฅผ ๋๋ฌ์ ๋ชจ๋ 32x32๋ก ์๋ผ์ ๊ฐ๊ฐ ์ด๋ฆ์ ์ ์ฉํด์ค๋๋ค. ( ์ด๋ฆ์ ์ด์ฉํด์ ๊ฐ์ ธ๋ค ์ธ๊ฑฐ๊ฑฐ๋ ์ )
3. ๋ชฉํ
(์์๊ณ ์ทจ๋ฅผ ์ํด ๋ฏธ๋ฆฌ ์ฌ๋ ค๋ก๋๋ค.)
4. ๋์ ์ฌ ์คํฌ๋ฆฝํธ
์ด์ ์ ๊ทธ๋ฅ ๋ฑ๋ก๋ง ํด๋์๋ ๋์ ์ฌ ์คํฌ๋ฆฝํธ์ ๋๋ค.
๋ฃจํธ ๊ฒ์์ค๋ธ์ ํธ๋ ๋์ค์ ๋ค๋ฅธ ์ฌ ๋ก๋๊ฐ ์์๊น๋ด
๋ชจ๋ ๊ฒ์ ์ค๋ธ์ ํธ๋ ์ฌ์ด๋ฆ์ ๋น๊ฒ์์ค๋ธ์ ํธ๋ฅผ ๋ฃจํธ๋ก ์ผ๊ฒ ๋ง๋ค๋ ค๋๋ฐ ๊ทธ๋ฌ๋ฉด
์คํฌ๋ฆฝํธ ์์์ ๊ฐ์ ธ๋ค ์ธ๋๋ ๋ฃจํธ๊ฒ์์ค๋ธ์ ํธ๊ฐ ์ด๋ค๊ฑด์ง ์์์ผ ๋์ ๋ฉค๋ฒ๋ก ๋ง๋ค์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ ๋งค๋์ ๊ฐ ๊ฐ์ ธ๋ค ์ธ ์ธํ๋งค๋์ ๋ฅผ
setIO๋ผ๋ ํจ์๋ก ๋ฑ๋กํ๊ตฌ์ ( ํค๋ณด๋ ์ ๋ ฅ๊ณผ ๊ทธ๋ํฝ ์ถ๋ ฅ์ ํ๊ธฐ๋ก ํ๋ค์ )
๋์ ๋งค๋์ ๊ฐ dungeonLoop๋ผ๋ ๋์ ํธ์ถํ๋ฉด ์ฐ์ ํ๋ฉด์ ๊ทธ๋ ค์ ธ์ผ ํฉ๋๋ค.
5. ๋์ ๋งค๋์ ์์ ํ ๋ถ๋ถ
์ฐ์ ์ธํ๋งค๋์ , ์์ํ ๋งค๋์ ๋ฅผ ๋ฉค๋ฒ๋ก ๋ฃ๊ณ
setIO๋ผ๋ ํจ์๋ก ๋ฑ๋กํ๋๋ก ๋ง๋ค์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ monsters๋ผ๋๊ฑฐ๋ฅผ ๊ฐ๋ณ ๋ชฌ์คํฐ ํญ๋ชฉ์ ์ธ๋ฑ์ค๋ก ์ ๊ทผ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ์ํด
List<Character>๋ก ๋ฐ๊ฟจ์ต๋๋ค. ๋ค๋ฅธ๊ฑด ์ฐจ์ด๊ฐ ์์ฃ .
๊ทธ๋ฆฌ๊ณ .. ์ด์ ์๋ while๋ฃจํ์๋ dungeonLoop๋ฅผ ์์ ํ์ต๋๋ค. ๋ฃจํ๋ฅผ ์์ ๊ณ ์ฐ์ ์ด๊ธฐ์ํ
๊ทธ๋ฆฌ๋๋ก ์์ํ๋งค๋์ ํธ์ถํ๋ ์ฉ๋๋ก๋ง์. ์ด๋ถ๋ถ์ ์ธํ๋งค๋์ ๊ฐ ํด๊ฒฐ๋๋ฉด ๋ค์ ๋ฃจํํํ๋ก ๋ฐ๊ฟ ์๊ฐ์ ๋๋ค.
์์ฐจ์ ์ผ๋ก ๋ฐ๋ฅ/๋ฒฝ/์์ดํ
/๋ชฌ์คํฐ/ํ๋ ์ด์ด ์์ผ๋ก ๊ทธ๋ฆฝ๋๋ค.
๊ทธ๋ผ ์์ ๋์ ์ฌ์ ๋ณด๋ฉด ๊ทธ๋ํฝ ์์ํ๋งค๋์ ํด๋์ค๋ก ๋ณ๊ฒฝํ๋๋ฐ ์ด๋ค ํด๋์ค์ธ์ง ๋ณด๋๋กํฉ์๋ค.
์ฐ์ ์์ํ ๋งค๋์ ๋ฅผ abstract๋ฅผ ์ถ๊ฐํด์ ์ถ์ํด๋์ค๋ก ๋ณ๊ฒฝํฉ๋๋ค.
( ์ผ๋ถ ๋ฉค๋ฒํจ์๊ฐ ํจ์ ๋ชธํต -๊ตฌํ๋ถ๋ถ์ด ์์ด ์ธํฐํ์ด์ค๋ง ์ ์๋ ๊ฒฝ์ฐ, ์์๋ฐ์๋ ์์ํด๋์ค๊ฐ ๊ตฌํํด์ ์ฐ๋๋ก ํ๋ ๊ฒฝ์ฐ )
{}๋ก ๋์ด์๋ ํจ์๋ฐ๋๋ฅผ ์์ ๊ณ ย
public abstractย ๋ฆฌํด๊ฐย ํจ์๋ช (ํ๋ผ๋ฏธํฐ);
draw ( Floor, WallAndWeb, Item,ย Monster ) ํจ์๊ฐ ๋ฐ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ง์... ๊ทธ๋ํฝ ์์ํ ๋งค๋์ ์ ๋๋ค.
์ด๋ผ ์ฌ์ง์ด 10๊ฐ ๋์๋ค... ๋ค์ํ์์ ์ด์ด์ ์ ๊ฒ ์ต๋๋ค
ย
๋๊ธ 0