if(place_meeting(x,y+1,obj_wall)) ย ์ค๋ธ์ ํธ์ ํ์ฌ์์น x์ ์๋ซ๋ถ๋ถ์ obj_wall์ด ์์ผ๋ฉดย
if์์ ๋ด์ฉ๋ฌผ์ ์คํํ๋๊ฑด ์๊ฒ ๋๋ฐย
์ง์ง ์ดํด๊ฐ ์๊ฐ๋ ๋ถ๋ถ์ย
if(place_meeting(x+hsp,y,obj_wall)) ์ ๋๋ค hsp๋ ์ซ์๊ฐ ๋ด๊ฒจ์ง ๋ณ์์ธ๋ฐย
x์ ํ์ฌ ์์น์์ +7๋งํผ์ ๋ฐ๊ฒฝ์ wall์ด ์์ผ๋ฉด if ๋ฌธ์ ์คํํ๋ค๋ก ํด์ํ๋๋ฐ
์๋ค๊ฐ ์๋ง๊ณ ๋๊ฒ ํผ๋์ค๋ฝ๋ค์ย
์ด๊ฑธ ์ด๋ป๊ฒ ํด์ํด์ผ ํ์ฃ ใ ใ
๋ ๋ชจ๋ฅด๋๋ฐ ์์ํด๋ณด๋ฉด x ~ x+7 ์ฌ์ด๋ฅผ ๊ฒ์ฌํ๋๊ฑด์ง x+7 ๋ง ๊ฒ์ฌํ๋์ง์ ๋ฐ๋ผ ๋ค๋ฅธ๊ฑฐ ๊ฐ์๋ฐ ๊ทธ๋ฌ๋๊น ๋ฐ๊ฒฝ์ด๋ผ๊ณ ์๊ฐํ๋ ๊ฑฐ๋ ๋ค๋ฅด๋ค๋ฉด ํ์์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ ๊ฒ ๊ฐ์๋ฐ
๊ทธ๋ฐ๊ฑด ๋ค๊ฐ ์ง์ ํ ์คํธ์ฉ์ผ๋ก ๋ง๋ค์ด์ ํด๋ณผ ์ ์์์ ์ค๋ธ์ ํธ์ ๊ทธ ์ค๋ธ์ ํธ๊ฐ ์ด๋ํ ์์น ์ฌ์ด์ ๋ฒฝ์ ๋๊ณ place_meetingํด์ ์ฐธ์ด๋ฉด ์ด๋ ๋ชปํ๊ณ ๊ฑฐ์ง์ด๋ฉด ์ด๋ํ ์์๊ฒ
ํค ๋๋ฅด์๋ง์ ํ๋ฒ์ ์ด๋ํ ์ ์๋๋ก x,y์ ๋ํ๋ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ํ๊ณ
์ดํด๊ฐ ์๋๋ฉด ์ง์ ํด๋ณด๋๊ฒ ์ ์ผ ์ดํด ์๋ผ ์ด๋ก ์ ์ธ์ฐ๊ณ ์คํ์ ํด๋ณด๋๊ฑฐ์ง ๋ฐฑ๋ฌธ์ด ๋ถ์ฌ์ผ๊ฒฌ์ด๋์๋
x์ ํ์ฌ ์์น์์ +7๋งํผ์ ๋ฐ๊ฒฝ์ wall์ด ์์ผ๋ฉด if ๋ฌธ์ ์คํํ๋ค๋ก ํด์ํ๋๋ฐ) ์ด ๋ถ๋ถ์ด ์ดํด๊ฐ ์๋๋๋ฐ ์ด๋์ ๊ทธ๋ ๊ฒ ํด์ํ๋ค๋๊ฑฐ์ฃ ?
place_meeting์ ๊ฒฝ์ฐ object์ collision mask๋ฅผ (x,y)๊ธฐ์ค์ผ๋ก ์ฎ๊ธด๊ฒ๊ณผ์ ์ถฉ๋์ ํ์ธํฉ๋๋ค. ๋ง์ฝ ํ ์ง์ ์ ์ถฉ๋์ ํ์ธํ๊ณ ์ถ์ผ์๋ค๋ฉด Place_meeting๋ง๊ณ collision_point ๊ธฐ๋ฅ์ ์ด์ฉํ์ธ์
๊ฐ์ฌํฉ๋๋ค ๋์๋์ต๋๋ค