ํฐ ๋์์ด ๋ ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ด๋ ๊ฒ ๋ง๋ค๋ฉด ๋ ๊ฑฐ๋ผ ์๊ฐํจ..ย
์ผ๋จ ์ ๋ฌผ์ ์๊ตฌ์ฌํญ์
- ์บ๋ฆญํฐ์ ๋ฅ๋ ฅ์ ์์/์กฐ๊ฑด๋ถ ๊ฐํํ๋ค.
์ธ๋ฐย ์ด๊ฒ์ ์ข๋ ํ์ฅํ์ฌ [ํน์ ๋ฅ๋ ฅ]์ด๋ผ๊ณ ๊ฐ์ ํด๋ณด๋ฉด
- ๋ถํน์ ๋ค์์ ์ค๋ธ์ ํธ์๊ฒ ์ข ์๋ ์ ์๋ค.ย
๋ผ๋ ์๊ตฌ์ฌํญ์ด ๋ถ์ด. ์ฆ,
[ํน์ ๋ฅ๋ ฅ]์ด [์บ๋ฆญํฐ]์๊ฒ ๋ถ์ผ๋ฉด ํจ์๋ธ ์คํฌ์ด
[ํน์ ๋ฅ๋ ฅ]์ ๊ฐ์ง [์บ๋ฆญํฐ]๊ฐ ์ฐฉ์ฉํ ์ ์๋ ์์ดํ ์ด ์กด์ฌํ๋ค๋ฉด [์ ๋ฌผ]์ด ๋๊ฒ ์ง.
๋ํ [ํน์ ๋ฅ๋ ฅ]์ ์ฌ์ฌ์ฉ์ฑ์ ๊ณ ๋ คํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์๊ตฌ์ฌํญ์ด ํ์ํ ์๋ ์์ด.
- ์์ดํ ๊ณผ ํจ๊ณผ๋ ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์กฐํฉ๋๋ค. ( ๋๊ฐ์ ๋ฌด๊ธฐ [๋กฑ์๋]์ [๊ณต๊ฒฉ์ ํ์] [ํน์ ํ๋ฅ ๋ก ์๋จธ๋ธ๋ ์ดํฌ] ๊ฐ์ ๋ถํน์ ๋ค์์ ํจ๊ณผ๊ฐ ๋ถ์ ์ ์๊ฒ ์ง. )
- ํจ๊ณผ์ ์ฑ๋ฅ์ ๋ณ์๋ก ๋ณด์กด๋๋ค. ( [๊ณต๊ฒฉ์ ํ์]์ผ ๊ฒฝ์ฐ ํ์ ๋ํธ๋ฐ๋ฏธ์ง๊ฐ 10์ธ [ํน์ ๋ฅ๋ ฅ]๋, 20์ธ [ํน์ ๋ฅ๋ ฅ]๋ ์์ ๊ฒ์. )
- ํจ๊ณผ๊ฐ ๋ฐ๋๋๊ธฐ ์ํ ์กฐ๊ฑด๊ณผ ํจ๊ณผ๋ ์๋ก ๋ ๋ฆฝ์ ์ด๋ค. ( ๊ณต๊ฒฉ ์ [ํ์] ์ ๋จ๊ธธ์๋, [์๋จธ๋ธ๋ ์ดํฌ]๋ฅผ ๋จ๊ธธ ์๋ ์๊ฒ ์ง. )
์ด ๋ค์ ์๊ตฌ์ฌํญ์ ๊ตฌํํ๋ ๊ณผ์ ์
๊ฒ์์ ์ํฅ์ ๋ผ์น๋ [ํ์]์ด๋ [์๋จธ๋ธ๋ ์ดํฌ]๊ฐ์ ์ ์๋ ๊ท์น์ ์ผ์ข ์ ํจ์๋ก ๋ถ๋ฅํ ์ ์์ด.
ํ์ํ ํ๋ผ๋ฏธํฐ์ ๋์๋ง ์ ํด์ง๋ค๋ฉด ์ํํด์ผ๋๋ ๋ด์ฉ์ ๋์ผํ๊ธฐ ๋๋ฌธ์ด์ผ.
ํ์ง๋ง ํจ๊ณผ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ํ [์กฐ๊ฑด]์ ๋ณ์๊ฐ ํ์ํด. ์๋ํ๋ฉด ์กฐ๊ฑด์ ๋น๊ต ๋์์ ๊ธฐ์ตํ๊ณ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ด์ผ.
๋ด๊ฐ ์ฐฉ์ฉํ ์ ๋ฌผ์ ํจ๊ณผ์ธ [๊ณต๊ฒฉ ์ 20%ํ๋ฅ ๋ก ์ ์๊ฒ 204 ๋ฐ๋ฏธ์ง์ ํ์] ์ด๋ ํจ๊ณผ๋ฅผย
์ ๊ตฐ์ธ ์ฌ๋ผ์ A๊ฐ ๊ณต๊ฒฉํ์์ ๋ ๋ฐ์์ํค๋ฉด ์๋์์?
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ [์กฐ๊ฑด]์ ๋ฌด๊ฒ๋ฅผ ๋ฌ์ผํจ.
๊ทธ๋ฌ๋ฉด ๊ตฌํํด์ผ ๋ ๋ด์ฉ์
- GameEngine์ด ์ฌ์ ์ ์ ์๋ [๊ฐ์ฒด๋ฅผ ๋ณํ์ํฌ ์ ์๋ ๊ธฐ๋ฅ]์ ๋ฉ์๋๋ก ๋ณด์ ํ๊ณ ์๋ค. ( ๊ณ์ ํ์ฅ๋ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์ ์ต์คํ ์ ์ผ๋ก ์ถ๊ฐํ๋ค. )
- GameEngine์ ๊ฒ์์ ๊ท์น ์ด๋ฒคํธย ์คํธ๋ฆผ์ ๊ท์น ์ด๋ฒคํธย ํ์ ๋ง๋ค ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ , ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ต์ ๋ฒ์๊ฒ ์ ๋ฌํ๋ค.
- ์ต์ ๋ฒ๋ ์ด๋ฒคํธ ๋ฉ์ธ์ง๋ฅผ ์ ๋ฌ๋ฐ์ ์ฌ๋ฐ๋ฅธ ์กฐ๊ฑด์ธ์ง ํ์ธํ๊ณ , ์ฌ๋ฐ๋ฅด๋ค ํ๋จ๋๋ฉด [ํน์ ๋ฅ๋ ฅ]์ย ์คํํ๋ค.
- GameEngine์ ๊ฒ์์ ๋์์ํค๋ฉฐ, ๊ฒ์์์ ํน์ ๊ท์น ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ์คํธ๋ฆผ์ ์ด๋ฒคํธ๋ฅผ ํต์งํ๋ค.
- [ํน์ ๋ฅ๋ ฅ]์ ๊ฐ์ง ์์ดํ ๋ค์ [ํน์ ๋ฅ๋ ฅ]์ ๋์์ํค๊ธฐ ์ํด ํ์ํ ์ต์ ๋ฒ์ ๋ณ์๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉฐ, ์ด๋ฅผย GameEngine์ ์ด๋ฒคํธ ์คํธ๋ฆผ์ ์ต์ ๋ฒ๋ฅผ ๋ฑ๋กํ๋ค.ย
์ ๊ฐ์ด ๊ตฌํ๋ ์ ์์. ์ฌ๊ธฐ์ย
์ ๋ฌผ์ด๋, ํจ์๋ธ๋, ์ด์ ๋๊ฐ ๋ง๋ค ์กฐ๊ฑด๋ถ ํจ๊ณผ ๊ธฐ๋ฅ์ ๋ถ์ฌํ๋ ์์ดํ ๋ค์ ์ด Event-Observable-Observer-Another Eventย ์ฌ์ดํด์ ์๋ง๋ ์ ๋ณด๋ง ์ฅ๊ณ ์์ผ๋ฉด ๋จ.
์์ดํ ์ ๋ง๋๋ ๋ฐฉ๋ฒ๋ ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์ง๋ง
์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ๋ฐ์๊ฐ ์ ์ํ ์์ดํ ์ ๋ณด ํ ์ด๋ธ์ด ์กด์ฌํ๊ณ , ์ค์ ์ ์ ๊ฐ ๊ฒ์์ ํ๋ ์ดํ๋ฉด์ ์์ฑ๋๋ ์์ดํ ์ธ์คํด์ค ํ ์ด๋ธ์ด ์กด์ฌํด์
์ธ์คํด์ค๊ฐ ์์ดํ ์ ๋ณด id๋ฅผ ํตํด ํ ์ด๋ธ์ ์ฐธ์กฐํด์ค๋ ๋ฐฉ์์ผ๋ก ๋ง๋ ๋ค ์น๋ฉด
์ด๋ฐ์์ผ๋ก ๋ง๋ค ์ ์๊ฒ ์ง? ( ์๊ฐ์์ด ์จ์ ํ๋ฆด ์ ์์. ์ต์ ๋ฒ์ ๋ณ์๋ฅผ ํฌํจํ ์ค๋ธ์ ํธ๋ฅผ Property ๋ผ๊ณ ์ ์ด๋์ )
์ด ์์คํ ์์ ๋ง๋ค์ด์ง ์ ๋ฌผ์
์ถ์ํ๋ ์๋ฅผ ๋ค๋ฉด
ย ๋กฑ ์๋๋
ย ๊ธฐ๋ณธ์ ์ผ๋ก "๊ณต๊ฒฉ๋ ฅ์ด 10~20 ์์นํ๋ค." ๋ผ๋ ํจ๊ณผ๊ฐ ์๊ณ .ย
ย ๋ค์ ์กฐ๊ฑด
ย 1. ๊ณต๊ฒฉ๋ ฅ์ด +20 ์์นํ๋ค.ย
ย 2. ์ฐฉ์ฉ์์ ๋ฏผ์ฒฉ์ฑ์ด 20์ด์์ด๋ฉด ๊ณต๊ฒฉ๋ ฅ์ด +15 ๋ ์์นํ๋ค.ย
ย 3. ๊ณต๊ฒฉ ์ 20% ํ๋ฅ ๋ก ์ ์๊ฒ 15์ด๊ฐ 1์ด ๊ฐ๊ฒฉ์ผ๋ก 24์ ํ์ ๋ฐ๋ฏธ์ง๋ฅผ ์ ํ๋ค.
ย ์ค 1๊ฐ์ ํจ๊ณผ๊ฐ ๋ถ๋๋ค๊ณ ์น๋ค๋ฉด
์ฐ์ ์์ง์๋
void CharacterAttackUp(int power)
void CharacterAppliedBurn(float rate, int damage, float duration)
๊ณผ ๊ฐ์ ์ต์คํ ์ ๋ฃฐ์ด ์์ด์ผ ํ ๊ฒ์ด๊ณ
์ด๋ฒคํธ(Observable)๋
"์บ๋ฆญํฐ ๋ฅ๋ ฅ์น ๊ฐฑ์ " (ํด์ ๋ผ๋ฉด ํด๋ง๋ค, ์ก์ ๊ฒ์์ด๋ผ๋ฉด ํน์ duration๋ง๋ค ํต์ง)
"์๊ฐ ํ๋ฆ" (์์ง์ด ์ ๋ฐ์ดํธ ๊ฐ๊ฒฉ์ DeltaTime๋ง๋ค ํต์ง)
์ด๋ฒคํธ๊ฐ ํ์ํ ๊ฒ์ด๊ณ
์กฐ๊ฑด(Observer)์
OnConditionalStatusUpdate : Observer<"์บ๋ฆญํฐ ๋ฅ๋ ฅ์น ๊ฐฑ์ "> // ์บ๋ฆญํฐ id์ ์กฐ๊ฑด ๋ฅ๋ ฅ์น ํ ์ด๋ธ์ย ์ ์ฅํด๋๊ณ , ํ์ฌ ๊ทธ ์บ๋ฆญํฐ์ ๋ฅ๋ ฅ์น๊ฐ ํน์ ๊ฐ ์ด์์ผ ๊ฒฝ์ฐ true
OnElapsedDuration : Observer<"์๊ฐ ํ๋ฆ"> // ์๊ฐ ํ๋ฆ์ ๋์ ํ์ฌ ํน์ ์ฃผ๊ธฐ์ ๋๋ฌ์ trueย
์ ๋ง๋ค์ด์ผ ๋ ๊ฑฐ์ผ.
๊ทธ๋ฆฌ๊ณ ๊ฒ์ ๋ด์์
-> ์๋ก์ด ๋กฑ์๋๊ฐ ์๊ธฐ๊ฒ ๋๋ฉด ๋กฑ์๋ ๋ ์ฝ๋ ์์ด๋๋ฅผ ๊ฐ์ง ์์ดํ ์ธ์คํด์ค๋ฅผ ์์ฑ. ์ด ๋กฑ์๋์์ ์ฐฉ์ฉ์ ๋ฐํ๋๋ ํจ๊ณผ์ ์ธ๋ฑ์ค๋ฅผ ๋ณด์ .
-> ๋กฑ์๋๋ฅผ ์ฐฉ์ฉํ๋ค๋ฉด ๋กฑ์๋ ๋ ์ฝ๋ ์์ด๋์ ๋ฐํ ํจ๊ณผ์ ์ธ๋ฑ์ค๋ฅผ ์ฐธ๊ณ ํ์ฌ ๋ ์ฝ๋๋ก๋ถํฐ Property๋ฅผ ์์ฑ
-> GameEngine์ Observable ์คํธ๋ฆผ์ ๊ตฌ๋ .ย ย
-> ๊ตฌ๋ ๋ Property๋ค์ Dispose Observer๊ฐ true๊ฐ ๋๊ธฐ ์ ๊น์ง ์์ง ๋ด๋ถ์์ ์บ๋ฆญํฐ์ ์คํ ์ดํฐ์ค๋ฅผ ๊ณ์ ์ ๋ฐ์ดํธ.
์ด๋ฐ ํ์์ผ๋ก ๋ง๋ค๋ฉด ๋จ.
์์์์ค.. ์๋ฌด๋์์๋ ๋ฏ..
๊ธฐ์ด๋๋ฉด ๋ด์ผ ํ์ํ๊ฑด ๊ณ ์น๊ณ ..
์ ์ฑ์ถ!!
์ด๋ฐ๊ธ ์จ์ค์ ๋๋ฌด ๊ณ ๋ง์ ์ง์ง ์ฐธ๊ณ ํด์ ์ํด๋ณผ๊ฒ - dc App
๋์๋ธ๋ก์ ์์ดํ ์ด๋ฉด ์ ๊ธ์ด ์ข๊ณ ์ ๋ฌผ์ด 10๊ฐ์ ๋๋ฉด ๊ทธ๋ฅ ์ผ์ผ์ด ์จ์คํ๋ก ๋ง๋ค์ด์ฃผ๋๊ฒ ๋ ๋น ๋ฆ