๐ก ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ ฅ๊ณผ, ํธ๋ ์ด์ค๋ฅผ ์ด์ฉํ ์กํฐ์์ ์ํธ์์ฉ์ ๋ํด์ ์์ฑํ๊ฒ ๋ค.
์ฐ๋ฆฌ๋ ์ด์ ํฌ์คํ ๊น์ง์ ์ค์ต์ผ๋ก ์บ๋ฆญํฐ์ ๊ธฐ์ด์ ์ธ ๊ธฐ๋ฐ์ ๋ชจ๋ ์ ์ํ์์ต๋๋ค.
ํ์ง๋ง ๊ฒ์์์๋ ์บ๋ฆญํฐ๋ง ์กฐ์ํ์ง ์์ฃ .
์ด์ ์๋ฉด ํด๋น ๋ฐ๋ฏธ์ง๊ฐ ๋ค์ด๊ฐ๊ณ , ์์ดํ
์ ์ค๊ณ , ๋ฌธ์ ์ด๊ณ ํ๋ ๋ฑ์ ์ฌ๋ฌ๊ฐ์ง ์ํธ์์ฉ์ด ์ผ์ด๋ฉ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ์ํธ์์ฉ์ ๋ํด์ ํ๋์ฉ ์ ์ด๋ณด๊ฒ ์ต๋๋ค.
1. ์ํธ์์ฉ์ ์ํ ๊ธฐ์ด
2. Line Trace๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
3. Overlap Event๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
4. ์์ฉ
์ํธ์์ฉ์ ํ๊ธฐ ์ํด์ ์๋ 3๊ฐ์ง์ ๋ํด์ ๋จผ์ ์์ ๋ณด๊ฒ ์ต๋๋ค.
ํ๋์ฉ ์์๋ด ์๋ค. ๐
์ฐ์ ํจ์์ ๊ฐ๋ ๋ถํฐ ์์๋ณด๊ฒ ์ต๋๋ค.
ํจ์๋ ํน์ ์์ ์ ์ํํ๊ธฐ ์ํด ์ค๊ณ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋์ ์งํฉ์ ๋๋ค.
์ฝ๊ฒ ๋งํ๋ฉด ์ ๋ ฅ๊ฐ์ ๋ฃ์ผ๋ฉด ์ํ๋ ํน์ ์์ ์ ์ํ์ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ์ด ๋์ค๋๋ก ํ ๊ฒ์ด๋ค.
๋ธ๋ฃจํ๋ฆฐํธ์ ์ต์ํ์ง ์๋ค๋ฉด C++๋ก ๋จผ์ ์ฝ๋๋ฅผ ์์ฑํด๋ณด์๊ณ ๊ฐ์ด๋๋ก ์ฌ์ฉํ์๋ฉด ์ข์ต๋๋ค.
์ดํด๋ฅผ ๋๊ธฐ ์ํด ๋ธ๋ฃจํ๋ฆฐํธ๋ก ํจ์๋ฅผ ๋ง๋ค๊ธฐ ์ด์ ์ C++๋ก ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค.
์ ํฌ๋ ์์๋ก 2๊ฐ์ ํจ์๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
- ์ด์์ด ์๋ชจ๋๋ ํจ์
- ์ด์์ด ์ถฉ์ ๋๋ ํจ์
C++๋ก ์์ฑํ๋ฉด ์๋์ ๊ฐ๊ฒ ์ฃ .
void Fire()
{
bullet -= 1;
}
๊ฐ๋จํ์ฃ ?
๊ฒ์์ ์ธ๋ถ์ ์ธ ์ค๊ณ์ ๋ฐ๋ผ์ ์กฐ๊ฑด๋ฌธ์ด ๋ ๋ง์ด ์ถ๊ฐ๋ ๊ฒ๋๋ค.
ํ์ง๋ง ๊ฐ๋จํ ์ค์ต์ ์ํด ๋จ์ํ ์ด์์ด 1๋ฐ ์ค์ด๋๋ ๋ก์ง๋ง ๋ง๋ค์์ต๋๋ค.
์ด์ BP_Player๋ก ์ด๋ํฉ๋๋ค.
์ด์์ ๊ฐ์๋ฅผ ์ ์ฅํ ๋ณ์๊ฐ ์์ด์ผ๊ฒ ์ฃ ?
๋ณ์๋ฅผ ํ๋ ๋ง๋ค์ด ์ฃผ๊ฒ ์ต๋๋ค.
Integer๋ก ๋ง๋ค์ด์ฃผ์ธ์.
์ด์ Fire๋ผ๋ ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์
๋ฏธ๋ฆฌ ์์ฑํ C++์ฝ๋๋ฅผ ๊ฐ์ด๋ ์ผ์ ๋ก์ง์ ์ ์ํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
ํ์ฌ ์ด์์์ 1๊ฐ์ํ ๊ฐ์ Set Bullet์ ์ฌ์ฉํด์ ์ ์ฅํ๋ฉด ๋ฉ๋๋ค.
์ฐ์ C++๋ก ์์ฑํด๋ด
์๋ค.
bulletCount๋ผ๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์ ๊ทธ๋งํผ ์ด์์ ์ถฉ์ ํด๋ณด๊ฒ ์ต๋๋ค.
์ด๋ฒ์ ์กฐ๊ฑด์ ํ๋ ์ถ๊ฐํด๋ณด์ฃ .
์ต๋๋ก ๊ฐ์ง๊ณ ์์ ์ ์๋ ์ด์์ ๊ฐ์๋ฅผ 120๊ฐ๋ก ์ ํํด๋ณด๊ฒ ์ต๋๋ค.
void Refill(int extraBullet)
{
bullet += extraBullet;
if (bullet > 120)
{
bullet = 120;
}
}
์ญ์ ํจ์๋ฅผ ์ถ๊ฐํด์ฃผ์ธ์.
์ด๋ฆ์ Refill์ด๋ผ๊ณ ์ง์ด์ฃผ๊ฒ ์ต๋๋ค.
์ถ๊ฐํ ์ด์์ ์๋ฅผ extraBullet์ด๋ผ๋ ์ด๋ฆ์ผ๋ก Input๊ฐ์ ๋ฃ์ด์ค์๋ค.
ํจ์๋ฅผ ์ ํํ๊ณ ์ฐ์ธก Details์์ ์ค์ ํ์๋ฉด ๋ฉ๋๋ค.
์ฐ์ ์ด์์ ๋ํ๋ ๋ก์ง๋ถํฐ ํ๊ฒ ์ต๋๋ค.
ํ์ฌ Bullet๊ณผ extraBullet์ ํฉ ๊ฒฐ๊ณผ๊ฐ์ Setํด์ฃผ๋ฉด ๋๊ฒ ์ฃ ?
์ด์ ์กฐ๊ฑด์ ์ถ๊ฐํด๋ด
์๋ค.
๋ํด์ง Bullet์ด 120๊ฐ๋ฅผ ์ด๊ณผํ๋ฉด ๋ค์ 120๊ฐ๋ก ์ค์ ํด์ฃผ๋ฉด ๋์
๋๋ค.
๊ฐ๋จํ์ฃ ?
์ด๋ ๊ฒ ๋ง๋ ํจ์๋ ์ดํ ํฌ์คํ
์์ ์ฌ์ฉํ ์์ ์
๋๋ค.
์ญ์ ํ์ง ๋ง๊ณ ๊ทธ๋๋ก ๋์๋ฉด ๋ฉ๋๋ค.
Trace๋ ๊ฐ๋จํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ค์ ํ ์์์ ๊ณผ ๋์ ์ ๊ธฐ์ค์ผ๋ก ๋ ์ด์ ๋ฅผ ๋ฐ์ฌํฉ๋๋ค.
๋ฐ์ฌ๋ ๋ ์ด์ ๋ ์ถฉ๋ํ ๋์์ ๊ฐ์งํ ์ ์์ต๋๋ค.
Trace๋ ์ฌ๋ฌ๊ฐ์ง ์ข
๋ฅ๊ฐ ์๋๋ฐ ์๋ ๊ณต์๋ฌธ์์์ ๋์ค๋ ์ฌ์ง์ ๋ณด์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ ๋ Line Trace๋ฅผ ์ฌ์ฉํ ์์๋ฅผ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ขํด๋ฆญ์ผ๋ก ์ด์ ์๋ ๋ชจ์
์ Line Trace๋ฅผ ์ถ๊ฐํด์ ์ค์ ํ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ์ฌํด๋ณด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
์ ์ด Trace์ ์งํ๋ฐฉํฅ์
๋๋ค.
์ข์ธก์ Trace๋ ๋ฒฝ์ ๋ง์์ ๋ค๋ชจ ๋นจ๊ฐ ๋ฐ์ค๋ก ์ถฉ๋์ ๊ฐ์งํ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ๊ธฐ๋ฅ์ ํ์ฉํด์ ์ด์ ๊ธฐ๋ฅ์ ๋ง๋ค๋ฉด ๊ทธ๊ฒ์ด ํํธ์ค์บ๋ฐฉ์์ ๋๋ค.
์ํธ์์ฉ์ ์์ด์ ๊ฐ์ฅ ์ค์ํ ๊ฐ๋ ์ ๋๋ค.
Collision ์ถฉ๋์ ๋๋ค.
๋จ์ํ ๋ฌผ๋ฆฌ์ ์ํ ์ถฉ๋์ด ์๋ ์ด๋ฒคํธ ๋ฐ์์ ์ํด์ ์ถฉ๋์ ๊ฐ์งํ ์๋ ์์ต๋๋ค.
๊ฒ์์ ์งํํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์บ๋ฆญํฐ๊ฐ ์์งํ ์ ์๋ ์์ดํ ์ ์บ๋ฆญํฐ๊ฐ ๊ดํต๋ฉ๋๋ค.
๊ดํต๋๋๋ฐ ์ด๋ป๊ฒ ์ถฉ๋์ ๊ฐ์งํ ๊น์?
์ด๋ Collision์ ํํฐ๋ง ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์ ์๋ฉ๋๋ค.
"๋ฌด์์ ์ด๋ป๊ฒ ์ถฉ๋ํ ๊ฒ์ธ๊ฐ" ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๋ ๋ฒจ์ ํ๋ธ๋ฅผ ์ค์นํ๊ณ ํ๋์ฉ ๋ณ๊ฒฝํด๋ณด๋ฉด์ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
Block ์ํ์ผ ๋๋ ์บ๋ฆญํฐ๊ฐ ๊ฐ๋ก ๋งํ ์ด๋ํ์ง ๋ชปํฉ๋๋ค.
Overlap๊ณผ Ignore ์ํ์ผ ๋๋ ๊ดํต์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ์ง๋ง ์ฐจ์ด๊ฐ ์๋ค๋ฉด ์ด๋ฒคํธ ์์ฑ์ ์ ๋ฌด์ด๋ ์ ๊ธฐ์ตํด๋ก์๋ค.
์ดํ ์ฑ๋ ์ค์ ๊ณผ ๋๋ถ์ด ์ถฉ๋์ฌ๋ถ์ ๊ฐ๋
์ดํด๊ฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
ํ์ง๋ง ํ์์ ์ธ ๊ธฐ๋ฅ์ด๋ ๊ผญ ์ค์ตํ๋ฉฐ ์ดํดํฉ์๋ค.
Trace์ Collision์ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๊ธฐ์ ์ค์ํ ๊ฐ๋ ์ด๋ผ ์ถํ ๊ฐ๊ฐ์ ๋ด์ฉ์ ๋ํด์ ์์ธํ๊ฒ ํฌ์คํ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
1. ์ํธ์์ฉ์ ์ํ ๊ธฐ์ด
2. Line Trace๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
3. Overlap Event๋ฅผ ์ฌ์ฉํ ์ํธ์์ฉ
4. ์์ฉ