์ ˆ์ฐจ์  ๋งต ์ƒ์„ฑ๊ธฐ ์™„์„ฑํ–ˆ์›Œ


์ „์ฒด์ ์ธ ๊ตฌ์กฐ


1. Binary Space Partitioning์„ ํ†ตํ•ด ํฐ ์‚ฌ๊ฐํ˜•์„ ๋žœ๋ค์œผ๋กœ ์ˆ˜์ง/์ˆ˜ํ‰์„ ์ชผ๊ฐœ์„œ ๋ฐฉ์„ ๋งจ๋“ฌ.


2. ๊ฐ ๋ฐฉ์˜ ์ค‘์•™๊ฐ’์„ ๊ตฌํ•จ.


3. ๊ฐ๋ฐฉ์˜ ์ค‘์•™๊ฐ’์„ ๋น„๊ตํ•ด์„œ, ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฐฉ๊ณผ ์—ฐ๊ฒฐ๋˜๋Š” ์„ ์„ ๋งŒ๋“ฌ.


4. ํ•ด๋‹น ์„ ๊ณผ ๋ฐฉ ๋ฐ์ดํ„ฐ๋ฅผ ํ† ๋Œ€๋กœ, ๋ฐ”๋‹ฅ์„ ๊น”์•„์คŒ.


5. ๋ฐ”๋‹ฅ ๋ฐ์ดํ„ฐ๋ฅผ ํ† ๋Œ€๋กœ, 8๊ฐœ์˜ offset(๋Œ€๊ฐ, ์ƒํ•˜์ขŒ์šฐ)์„ ๋น„๊ตํ•˜์—ฌ, ๊ทธ์— ์•Œ๋งž์€ ํƒ€์ผ์„ ๊น”์•„์คŒ.


6. ์™„์„ฑ!






์ ˆ์ฐจ์ ์œผ๋กœ ๋งต์ด ์ƒ์„ฑ๋จ!

์ „์ฒด ์‚ฌ์ด์ฆˆ, ๋ฐฉ๊ฐ„ ๊ฑฐ๋ฆฌ, ๋ฐฉ์˜ ์ƒ์„ฑ ํƒ€์ž…, ํƒ€์ผ์…‹์„ ์กฐ์ •ํ•ด์ค„ ์ˆ˜ ์žˆ์Œ!

์˜ˆ๋ฅผ ๋“ค๋ฉด, ๋ฐฉ์˜ ์ƒ์„ฑํƒ€์ž…์„ square๊ฐ€ ์•„๋‹Œ, ๋žœ๋ค์œผ๋กœ ์„ค์ •ํ•œ๋‹ค๋ฉด,





์š”๋ ‡๊ฒŒ ์กฐ๊ธˆ์€ ๋‚œ์žกํ•˜์ง€๋งŒ ํŠน์ƒ‰์žˆ๋Š” ๋งต์ด ์ƒ์„ฑ๋จ.

BSP๋กœ ๋ฐฉ์˜ ์ค‘์‹ฌ์„ ์ฐพ๊ณ , ํ•ด๋‹น ์ค‘์‹ฌ์—์„œ ๋žœ๋คํ•˜๊ฒŒ ์›€์ง์ด๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ”๋‹ฅ์„ ๋งŒ๋“ค๊ณ , ๋ฐ”๋‹ฅ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฒฝ์„ ์ƒ์„ฑ์‹œ์ผœ์ค€๊ฑฐ์•ผ.

๊ฐ ํƒ€์ผ๋“ค์€ ๋‹ค์–‘ํ•œ ๋ชจ์–‘์ด ์žˆ๊ณ , ๋‚˜๋Š” ๋žœ๋คํ•œ ๊ฐ’์œผ๋กœ ์ด ํƒ€์ผ์„ ์„ค์น˜ํ•˜๊ณ  ์‹ถ์—ˆ์–ด.

๊ทธ๋ž˜์„œ tileSpriteData๋ผ๋Š” ์Šคํฌ๋ฆฝํ„ฐ๋ธ” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ, List๋กœ ๊ฐ ํƒ€์ผ์„ ๊ด€๋ฆฌํ•จ.



๊ฐ€๊นŒ์ด์„œ ๋ณด๋ฉด ์ด๋Ÿฐ ๋А๋‚Œ์ด์•ผ.




์ด๋ ‡๊ฒŒ ํ•ด๋‹น ํƒ€์ผ๋ž€์— Tile Sprite์™€ Rate๋ฅผ ์„ค์ •ํ•ด์ฃผ๋ฉด, ๋นˆ๋„์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์—ฌ๋Ÿฌ ํƒ€์ผ์„ ๋žœ๋คํ•˜๊ฒŒ ์ƒ์„ฑํ•ด์ค˜.


์ „์ฒด์ ์ธ ๊ตฌ์ƒ‰์€ ์™ธ๊ตญ์œ ํŠœ๋ธŒ ์ฐธ์กฐํ•ด์„œ, ์ฝ”๋“œ ์ข€ ์ˆ˜์ •ํ•˜๊ณ , ํƒ€์ผ๋ฐ์ดํ„ฐ์…‹์„ ๋งŒ๋“ค์–ด์„œ ๋žœ๋ค ๋ฐฐ์น˜ํ•˜๊ฒŒ ์‹œ์ผฐ์–ด.


์ด์ œ ํ•  ์ผ์€ ๋ฐฉ์˜ ๋žœ๋ค ์„ผํ„ฐ๋ฅผ ์ฐพ๊ณ , ๋ฐฉ์˜ ๋ฐ”๋‹ฅ์„ ๋น„๊ตํ•ด์„œ ์˜ค๋ธŒ์ ํŠธ๋‚˜ ์ ์„ ๋ฟŒ๋ฆด ๊ฑฐ์•ผ.

๋˜ ๋‹ค์ต์ŠคํŠธ๋ผ๋ฅผ ์‚ฌ์šฉํ•ด์„œ, starting position์—์„œ ๋จผ ๊ณณ์— ์ƒ์ž๋ฐฉ, ๋ณด์Šค๋ฐฉ ํ˜น์€ ํƒˆ์ถœ๋กœ๋ฅผ ๋งŒ๋“ค๊ฑฐ์•ผ.