๋์ ๊ฒ์์ด๋ผ player monster ๊ฐ๋ ์ด ์๋๋ผ unit ํด๋์ค๋ฅผ ๋ง๋ค๊ณ unit ํด๋์ค๊ฐ player1์ธ์ง 2์ธ์ง ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ํฉ์ธ๋ฐ
์ ๋์ ๊ณ ๋ธ๋ฆฐ, ์ํ, ์ธ๊ฐ ๋ฑ๋ฑ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์์ด lol์ฒ๋ผ ์ผ๋ฆญํฐ๋ผ๊ณ ๋ด๋ ์ข์ ๊ทผ๋ฐ ์๋ค๊ฐ ๊ณต๊ฒฉํ๊ฑฐ๋, ์คํฌ ์ฐ๋ ๊ฑฐ๋ ์ ๋๋ฉ์ด์ ์์ ์คํฌ์ด ๋ฌ๋ผ์ ธ์
baseUnit ํด๋์ค๋ฅผ ํ๋ ๋ง๋ค๊ณ ์ด๋ฅผ ์ธํฐํ์ด์ค๋ก ์ฌ์ฉํ๊ณ ์๋ฅผ ์์๋ฐ์์ ๊ณ ๋ธ๋ฆฐ ํด๋์ค, ์ํ ํด๋์ค ๋ฑ๋ฑ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด ๋๊ฐ๋๋ฐย
์๋ค๋ค์ด ์๋ณ๋๋ ๊ฑด ์ ์ผํ๊ฒ ์ด๋ฆ๋ฟ์ด๋ผ.. enum {๊ณ ๋ธ๋ฆฐ, ์ธ๊ฐ, ์ํ} ๋ก ๋๊ณ ์คํฌ๊ณผ ๊ณต๊ฒฉ์์ switch case๋ฅผ ์ฐ๋ฉด Unit ์คํฌ๋ฆฝํธ ํ๋๋กย ์ค์ผ ์ ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ด
๊ทธ๋ฐ๊ฒ ๊ทธ๋ฌ๋ฉด baseUnit์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ๊ฑฐ๋ํด์ง ๊ฑฐ ๊ฐ์์ ์ข ๊ฐ๋ ์ฑ์ด๋๊น ์ด๋ฐ๊ฒ ๋ฌธ์ ๊ฐ ๋๊ธด ํ๋๋ผ๊ณ ๊ทธ๋ฐ๋ฐ ์์ง ํ๋กํ ํ์ ์ ๋๋ผ ํจ์ ์ธํฐํ์ด์ค๊ฐ ์์ ๋ ๋๋ง๋ค (๋ฐํ ํ์ ์ด๋ ๋ฑ๋ฑ) ๋ค๋ฅธ ์์ ๋ ํด๋์ค๋ ๋ฐ๊ฟ์ผ ๋์ ์ข ์ง์ฆ๋ฌ๊ฑฐ๋ ๋ญ๊ฐ ์์์ ์ด์ฉํ๊ฒ ์คํ๋ ค ์ผ์ ๋ง๋ ๊ฑฐ ๊ฐ์์ ์ด๋ด ๋ ์ด๋ป๊ฒ ํ๋๊ฒ ๋ ํจ์จ์ ์ผ๊น??ย
OOP ์ง์ฅ์ ๋น ์ง์ จ๊ตฐ์ ์ ์๋. ๋ ์ข์ ๊ฑด ํด๋์ค๋ฅผ ์์๋ฐ์ง ๋ง๊ณ ์ค์ ๊ฐ (์ ์ด์จ์ด๋ ๋ญ๋ ) ์ฝ์ด๋ค์ฌ์ ์กฐํฉํด์ ์ฐ๋๊ฒ. ์ด๋ฌ๋ฉด ํด๋์ค ์ ๋๋ ค๋ ๋๊ณ ์์์ ๋ฌธ์ ์์๋ ์์ ๋ก์์ง๋ค. Unit ํด๋์ค ํ๋๋ง ์์ผ๋ฉด ๋๋ค ์ด์๋ฆฌ.
์ ๊ตฌ์ฑํด๋๋ฉด ์ ๋ ์ถ๊ฐํ ๋ ์ฌ์ง์ด ๋น๋ ์ํ๊ณ Json๋ง ๊ณ ์ณ์ฃผ๋ฉด ๋ฟ ํ๊ณ ์ ๋์ด ์์ฑ๋๋ ์์ฃผ ์ข์.
ํ ์ญ์ ๊ทธ๋ ๊ฒ ์ฃ ? ๊ทผ๋ฐ ์ ๋์ 30๋ง๋ฆฌ์ ๋ ๋ง๋ค๊ป๋ฐ unit ํด๋์ค๋ฅผ ๊ด๋ฆฌํด์ผํ๋ ๊ฑด ์ ์ญ๋์ด๊ฒ ์ฃ ? ์์์ฝ๋ ๋ผ์ธ์ด ์์ฒญ๊ธธ์ด์ง๊บผ๊ฐ์๋ฐ
๋น์ทํ ์ผ์ ํ๋๋๋ค์ ๋ญ์น๋๊ฒ ๋ซ๊ฒ ๊ตฐ์
Unit ํด๋์ค์ ๊ฐ์ข ํํ๋ค์ ์ชผ๊ฐ์ ํด๋์ค๋ก ๋ฝ์ผ๋ฉด ๋จ. AttackBerhavior ๋ผ๊ฑฐ๋, MovingBehavior ๋ผ๊ฑฐ๋
๊ทธ๋ฌ๋ฉด ์ด๋ฐ ์์ด๋๊ฒ ์ง. EntityType : Unit / UnitName : Elf / AttackBehavior : Range / Weapon : Arrow / MovingBehavior : Humanoid ....
Unit ํด๋์ค๋ ์ ๋ฐ ๊ธฐ๋ฅ๋ค์ ์ข ํฉ์ฒด์ด๊ณ , ๊ฐ๊ฐ์ ๊ธฐ๋ฅ๋ค์ ํด๋์ค๋ก ๋ฝ์์ ๊ฑฐ๊ธฐ์ ๊ตฌํํ๋ ๊ฒ์ผ๋ก ๋์ค์ Unit ๋ง๊ณ ๋ค๋ฅธ๋ฐ์๋ ์กฐํฉํด์ ์ธ ์๊ฐ ์์. ํ์๋ฅผ ๋ง๋ค๊ฒ ๋ค๋ฉด AttackBehavior : Range Weapon : TowerBeam
์์ฐ ์ปดํฌ๋ํธ์ฒ๋ผ ๋๋ฌด๊ณ ๋ง์์ฌํจํจ
์์กฐ์จ์งฑ
OOP๊ทผ๋ณธ์ฃผ์๊ณผ๊ฒฉํ ์ ์ฅํ์ธ์
ใด๊ตฌ๊ธ๋งํด๋ ์๋์จ๋๋ฐ ๊ทธ๊ฒ๋ญ๊ฐ์.
์คํธ๋ํฐ์ง ํจํด
๋ฑ ๊ณ ๋ฏผํ์ ๋๋ก ์์์ ํตํด ๋ง๋๋๋ ํน์ ์ด๊ฑฐํ๊ณผ ์ค์์น๋ฌธ์ผ๋ก ํตํด๋์ค๋ก ์ ๋์ ๋ง๋๋๋ ์ด ๋ํจํด์ ์๋ ์๋ก ์๋ฐฐ๋๊ณ ์ฅ๋จ์ ์ด ์์ต๋๋ค. ํ์ง๋ง ์์ ์ผํ๋๊ฒ ์ค์์น๋ฅผ ๋๋ ค๋ฐ๋๊ฑด ๊ทธ๋งํผ ์กฐ๊ฑด์ฐ์ฐ์ ํ๋ค๋๊ฑฐ, ์ ๊ฐ ๋ฐฐ์ธ๋ ๊ถ๊ทน์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์กฐ๊ฑด๋ฌธ์ ์ค์ผ์๋ก ์ข๋ค๊ณ ๋ฐฐ์ ์ต๋๋ค. ํ์ง๋ง ๊ท๋ชจ๊ฐ ์์ ๊ฒ์์ ๊ฒฝ์ฐ ํตํด๋์ค๋ก ๋๋ ค๋ฐ๋๊ฒ ํธํ์ฃ , ๋ฌด์๋ณด๋ค ์์ ์๋๊ฐ ๋น ๋ฅธ๊ฑด ์ฌ์ค์ ๋๋ค. ํ์ง๋ง ๊ทธ๋งํผ ์ ์ง๋ณด์์์ ๋ถ๋ฆฌํ์ฃ
ํ์ง๋ง ์ ๋ ๋๋๋ก ์์์ผ๋ก ๊ฐ๋๋ฐ ๊ทธ์ด์ ๋ ์์ํด๋์ค๋ค์ด ๋ถ๋ชจํด๋์ค ํ๋๋ก ๋ฌถ์์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ฅผ๋ค์ด ์ฌ์ด์ค๋ ์คํฐ์ ๋ง๋ค์ด๋ณด์ฃ , ํผ์ง์ค ์บ์คํธ ์ค๋ฒ๋ ์คํผ์ด ํด์ ๋๊ทธ๋ ์ถฉ๋์ ํ์ ์ํค๊ณ ๋ฟ์ ์ ๋ค์ ๋ฐฐ์ด์ ๋ด์๊ฑฐ์๋์์? ์ด์ํฉ์์ ๋ฐ๋ฏธ์ง๋ฅผ ์ฃผ๋ ค๋ฉด ๋ ์ด๋ฆ๋น๊ต์ค์์น๋ฌธ์ผ๋ก ๋ฐ๋ฏธ์ง๋ฅผ ์ค์ผํ์์์ ์ด๋ฐ๋ฉด์์ ๋ถ๋ฆฌํ์ฃ , ๋ง์ผ Unit์์์ UnitOnDamage ์ถ์,๊ฐ์ํจ์๋ฅผ ์ฌ์ด๋จ๋ค๋ฉด ์ง๊ธ์ ๊ฒฝ์ฐ ์์ถฉ๋ ๋นํ ๋ฐฐ์ด์ foreach Unit.UnitOnDamage ํจ์๋ฅผ ํธ์ถํ๋๊ฑธ๋ก ๋๋์ฃ
๊ณต๊ฒฉ์ด์ผ ๊ทธ๋ ๋ค ์ฒ๋ ์์ดํ ๊ณผ ์ธ๋ฒคํ ๋ฆฌ๋ง ์กด์ฌํด๋ ์์์ ์์ผ๋๊ฐ๋๊ฒ ์ข์ต๋๋ค
์ฌ๋ด์ผ๋ก ์ ๋ ์ด๋ฆด๋ ์ฌ๋ฐ๊ฒํ๊ณ ์ง๊ธ ๋ชจ์ํ๋ apk๋ค์ ์ ๋ํฐ ์คํ๋์ค์ ๋ฆฌํ๋ ํฐ๋ก ์์ค์ฝ๋๋ฅผ ๊น๋ดค๋๋ฐ ํตํด๋์ค์ฌ์ ๋๋์ต๋๋ค. ๋จ๋ค ๋ค์๋ ๊ฒ์์ด์๋๋ฐ ํด๋์ค ํ๋๊ฐ 1200์ค~3500์ค ;;
๊ทธ๋์์๋ถ๊ป์ ์ ๋์์ฒด๋ฅผ ์ชผ๊ฐ์ ํด๋์ค๋ฅผ ๋ง๋๋๋ฒ์ ์ ์ ํ์ ๊ฑฐ๊ฐ์์ unit unitattack ๋ฑ๋ฑ๋ฑ ๋์ ํฌ๋กค ์์ค๋ฅผ ๋ณด๋ ์ด ๋ฐฉ๋ฒ์ ํํด์ ์ผ๋จ ์ด๊ฒ์ผ๋ก๊ฐ๋ณผ๋ ค๊ตฌ์!