์๋ณธ์ ์๋ง ์ฌ๊ธฐ ์ ๋์ด ๋ฌ์์คฌ๋๋ฐ ์ญ์ ๋์ ์ฌ์ฌํด์ ๋ฒ์ญํด๋ด
์ค๋ ฅ
์๋ = ์๋ + ์ค๋ ฅ*dt
์์น = ์์น + ์๋*dt
์ด ๋ฐฉ์ ์์ ์ง๊ณต ์ํ์์๋ ๊ฝค ์ ์๋ํฉ๋๋ค. ์ง๊ณต ์ํ์์๋ ์ค๋ ฅ์ด ๋ํํ๋ ๋ฌผ์ฒด๋ฅผ ์์ํ ๊ฐ์ํ ์ ์์ผ๋ฉฐ,
๋ฒ์ฏ์ด ๋น์ ์๋๋ก ๋จ์ด์ง๋ ๊ฒ์ ์ ๋ ์ํ์ง ์์ต๋๋ค! ํ ๊ฐ์ง ํด๊ฒฐ์ฑ ์ ์์ง์ด๋ ๋ฌผ์ฒด์ ์๋๋ฅผ ์ ์ ํ ์๊ณ๊ฐ์ผ๋ก ๊ณ ์ ํ๋ ๊ฒ์ ๋๋ค.
๋ง์ฝ v > maxVelocity ์ผ๋,(V>์ต๋์๋)
local vs = maxVelocity/v velocity.x = velocity.x*vs velocity.y = velocity.y*vs end
๊ฐ์ (Damping)
์ ํ(Jumping)
์ข์ ์ ํ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํ๋ ๊ฒ์ ์ฌ๋ฌ ๊ฐ์ง ์์ธ์ผ๋ก ์ธํด ์ด๋ ค์ธ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก๋ ํ๋ ์ด์ด๊ฐ ์ ํ ๋ฒํผ์ ๋๋ฅธ ํ์, ์ ํ ๋์ด๋ฅผ ์ ์ดํ ์ ์๊ฒ ํ๋ ค๊ณ ํฉ๋๋ค.
์ด๋ ๋ฌผ๋ฆฌ ๋ฒ์น์ ์ด๊ธ๋์ง๋ง ๊ฒ์ํ๋ ์ด๋ฅผ ๋์ฑ ์ ๊ตํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค.
๊ทธ๋ผ ํ๋ซํฌ๋จธ ์ ํ๋ฅผ "์ ๋๋ก" ๋ณด์ด๊ฒ ํ๊ณ ๋๋ผ๊ฒ ํ๋ ํธ๋ฆญ์ ์ดํด๋ด
์๋ค.
๋ช ๊ฐ์ง ๊ฐ์ ๋ถํฐ ์์ํด์ผ ํฉ๋๋ค. ์ฒซ์งธ, ํ๋ ์ด์ด๋ ๋ฒํผ ํ๋๋ก ์ ํ๋ฅผ ์ ์ดํฉ๋๋ค.
ํ๋ ์ด์ด๊ฐ ๋ฒํผ์ ์ค๋ ๋๋ฅด๊ณ ์์์๋ก ๋ ๋์ด ์ ํํ๊ธฐ๋ฅผ ์ํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ฒํผ์ ์ธ๊ฒ ๋๋ฅด๋ฉด ์บ๋ฆญํฐ๊ฐ ๋ ๋์ด ์ ํํ๋ ๊ฒ์ฒ๋ผ ์ฐฉ๊ฐํ ์ ์์ต๋๋ค.
์๊ธฐ์ฌ์ด ์ ๊ทผ ๋ฐฉ์์ ํ๋ ์ด์ด๊ฐ ์ ํ ๋ฒํผ์ ๋๋ฅด๊ณ ์๋ ๋์ ๊ณ์ํด์ ์์ชฝ์ผ๋ก ํ์ ๊ฐํ๋ ๊ฒ์ ๋๋ค.
์ํ๊น๊ฒ๋ ์ด๋ ๊ฒ ํ๋ฉด ์ ํ๊ฐ '๋ถ ๋จ๋' ํ์์ด ๋ฐ์ํ๋ฉฐ ์บ๋ฆญํฐ๊ฐ ์ ํธํฉ์ ์ฐฉ์ฉํ์ง ์๋ ํ ์ ๋๋ก ์๋ํ๋ค๊ณ ๋๋ผ์ง ์์ต๋๋ค.
์ผ์ชฝ: ๋ค์ํ ์๊ฐ ๋์ ์ถ๋ ฅ์ด ์ ์ฉ๋ ์ ํธํฉ
์ค๋ฅธ์ชฝ: ์ด๊ธฐ ์๋๊ฐ ๊ฐ๋ณ์ ์ธ ์ ํ
๋ง์ฝ ์ ํํค๋ฅผ ๋๋ ๋ค๋ฉด
player.yy=์ด๊ธฐ ์ ํ์๋ end
์ ํ์ ๋ฌผ๋ฆฌํ์ ๋ฐ์ฌ์ฒด๋ฅผ ๋ฐ์ฌํ ๋์ ๋น์ทํฉ๋๋ค. ์บ๋ฆญํฐ์ ์ด๊ธฐ ์๋๋ฅผ ์ค์ ํ๊ณ ์ค๋ ฅ์ ๋ฐ๋ผ ์์ง์ด๊ฒ ํฉ๋๋ค(๊ณต๊ธฐ ์ ํญ์ ์ํฅ์ ๋ฌด์ํฉ๋๋ค). ๋ ๋ฒ์งธ ๊ฐ์ ์ ํ๋ ์ด์ด๊ฐ ์ ํ ๋ฒํผ์ ์ผ๋ง๋ ์ค๋ ๋๋ฅด๊ณ ์๋ ํญ์ ๋์ผํ ์์ง ์๋๋ก ์ ํํ๋ค๋ ๊ฒ์ ๋๋ค. ์บ๋ฆญํฐ์ ์ต๋ ์ ํ ๋์ด๋ฅผ ์๋ฉด ๋ค๋ฅธ ์ฌ๋ฌ ์์๋ฅผ ์ถ๋ก ํ ์ ์์ต๋๋ค:-- ์ฃผ์ด์ง ๋์ด๋ก ์ ํํ ์ ์๋ ์ค๋ ฅ์ ์ผ๋ง์ธ๊ฐ?
g = (2*jumpHeight)/(timeToApex^2)
-- ์ฐธ๊ณ : "initJumpVelocity"๊ฐ "g"์ ๋ฐฐ์๊ฐ ์๋ ๊ฒฝ์ฐ, ํ๋ ์ ์ฌ์ด์ ์ต๋ ๋์ด์ ๋๋ฌํฉ๋๋ค.
timeToApex = initJumpVelocity/g
๊ณ์ฐ
* ๋ณดํต ์ฌ๋์ ๊ฒฝ์ฐ ์๊ฐ ์๊ทน์ ๋นํด ์ฒญ๊ฐ ์๊ทน์ ๋ํ ๋ฐ์์ด ๋ ๋น ๋ฆ ๋๋ค. ๋ฐ๋ผ์ ์ํฅ ํจ๊ณผ๋ ํ๋ซํฌ๋จธ ๊ฒ์์ "์ ๋๋ก ๋ ๋๋"์ผ๋ก ๋ง๋๋ ๋ฐ ํ์์ ์ ๋๋ค.
๊ฐ์ถ