์ปจํ ์ด๋์๋ ์์ญ๊ณผ ๊ณ ์ ๋ ๊ฒฝ๊ณ๊ฐ ์์ผ๋ฉฐ ์์ ๋ชจ์ ์ผ ๋ฟ์ด๋ฉฐ ๊ธฐ๋ณธ PIXI ๋์์ ๋๋ค. ๊ฒฝ๊ณ๋ฅผ ์์ ํ๋ ค๋ฉด ์์ฒด ์ปจํ ์ด๋๋ฅผ ํ์ฅํ๊ณ "calculateBounds"๋ฉ์๋๋ฅผ ์ฌ์ ์ํฉ๋๋ค.
์์ญ๊ณผ ๊ณ ์ ๊ฒฝ๊ณ๊ฐ์๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ผ ๊ฒฝ์ฐ ๋ ๋๋ง์ ์ํฅ์์ฃผ์ง ์์์ผํฉ๋๋ค (๋๋ฌด ํฐ ๊ฐ์ฒด๋ฅผ iframe์ ๋ฃ๋ ๊ฒฝ์ฐ์ ์ ์ฌํ๊ฒ iframe์ด ๋ ์ปค์ง์ง ์์). . ์์ ์์๋ ๋ถ๋ช ํ ๊ทธ๋ ์ต๋๋ค. ๋๋ ์์ ์ ์๋ชป๋ ๋ ผ๋ฆฌ๋ฅผ ๋น๋ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ๊ณ ์ ๋ ๊ฒฝ๊ณ ์ต์ ์ด์๋ ๊ฒ์ ๋ฌธ์ ์ ์์ธ์ ์ฐพ์ง ๋ชปํ์ง๋ง ๋ฌธ์ ๋ ๋ถ๋ช ํ ์กด์ฌํฉ๋๋ค.
"์คํ ์คํฌ๋ฆฐ"์์๋ฅผ ๊ตฌํํ ๊ฒ์ ์ด๋ป๊ฒ ์ ์ ํ์๊ฒ ์ต๋๊น?
์ด์จ๋ ๊ฒฝ๊ณ๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์๋ฅผ ๋ณด์
จ์ต๋๊น? ์ด์ํ ๋์์ drawDebugLines
๊ฐ ์คํ๋๊ณ "์์ด์ฝ"์ปจํ
์ด๋์ ์ ์ ๊ทธ๋ฆด ๋๋ง๋ค ํด๋น ์ปจํ
์ด๋๊ฐ ์ปค์ง๋ค๋ ์ฌ์ค๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ์ด๋ ์ปจํ
์ด๋ ์น์ (๋๋น / ์ด, ๋์ด / ํ)์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์ค๋
์ง์ ์ ์๋ง์ผ๋ก ๋ง๋ญ๋๋ค.
๋ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ๋ ๋๋ง ์์์ ์ค๋ ์ ๋งคํํ๋ฉด ๋ ๋๋ฌ๋ ํ๋ฉด ํฌ๊ธฐ, ๋ฐฉํฅ, ํฝ์ ๋ฐ๋ ๋ฐ ๊ทธ๋ฆฌ๊ธฐ ์์์ ์ฌ์ฉ์ ์ง์ ์น์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ฌ๊ธฐ์๋ ๋ ํฌ๊ณ (์ : ํ๋ฉด ๋ฐ์์ ์ฌ๋ผ์ด๋ ํ ์์๋) ๋ ์์ ํญ๋ชฉ (์ : ๋ฐ์คํฌํฑ 1๊ณผ ๋ฐ์คํฌํฑ 2๋ฅผ ๋์์ ํ์ํ๋ ๊ฒฝ์ฐ)์ด ํฌํจ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ค๋ ๋ฐ ๊ธฐํ ์ ์ฝ ์กฐ๊ฑด์ ์ ์ง๋์ด์ผํฉ๋๋ค. .
lel.width = wonderfulRectangle.width * 0.8;
lel.height = wonderfulRectangle.height * 0.9;
์ ๊ทธ๊ฒ์ ์์๋ก ์ฌ์ฉํ์ง ์์ต๋๊น? ๋ค์๊ณผ ๊ฐ์ด ์ ์ญ ์ ์ผ๋ก ์ค์ ํ ์ ์์ต๋๊น?
var globalRect = new PIXI.Rectangle(0, 0, renderr.width/renderer.resolution, renderer.height/renderer.resolution);
ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๋๋ง๋ค ํด๋น ์ฌ๊ฐํ์ ์ ๋ฐ์ดํธํ๊ณ ์์ ํ์ญ์์ค. "lel.width"๋ฐ "lel.height"๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
LEL. ๊ทธ๊ฑด ์๋ฌด ์๊ด์ด ์์ต๋๋ค. ๊ทธ๋ฅ ์์ง์ผ ์์๋ ์คํ๋ผ์ดํธ ์ผ ๋ฟ์ด๊ณ ์๋ณธ ์ด๋ฏธ์ง๊ฐ ๋๋ฌด ์ปค์ ์ฌ๊ฐํ์ ๋ง์ถฐ์ผํ๊ธฐ ๋๋ฌธ์ ๋๋น์ ๋์ด๋ฅผ ์ค์ ํ๊ณ ์์ต๋๋ค. ์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ํด๋น "์์ด์ฝ"์ ๊ธฐ๋ณธ ์ปจํ ์ด๋๊ฐ desktop1์ด๊ณ ์์ด์ฝ์ ์ค๋ ํ๋ ค๊ณ ํ๋ ์ปจํ ์ด๋ ์ธ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ ๊ฒ์ desktopLayer์ ์ํ๊ณ desktopLayer๋ ๋ด๊ฐ ๋ฌด๋์ ๋์ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ์๋ฎฌ๋ ์ดํธํ๋ ค๋ ๊ฒ์ ์ฌ๋ฌ ์ค ์์ดํ ๊ฐ๋ฅํ๋ณด๊ธฐ์ ๋ฐํ ํ๋ฉด ๋ฐฐ๊ฒฝ ์์ ์์ด์ฝ ๊ทธ๋ฆฌ๋๊ฐ์๋ Android Launcher ํ๋ฉด์ ๋์์ ๋๋ค.
return new PIXI.Point(snapPosX.clamp(0, target.parent.width), snapPosY.clamp(0, target.parent.height));
๋๋ ์์ง๋ ๋น์ ์ด ์ํ๋ ๊ฒ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. PIXI ์ปจํ ์ด๋ ๊ฒฝ๊ณ๋ ์์๋๋ก ์ ํํ ์๋ํฉ๋๋ค. ์ด ์ค์๋ฅผ ํ ๊ฒ์ ๋น์ ์ด ์ฒ์์ด ์๋๋๋ค.
์ค ๋ฉ์ด์ปค์ ์จ๊ฒฐ, ๋ ์ด์ ํ ์ ์๋ค. ๋๊ตฌ๋ ์ง ์์ ๋ฅผ๋ณด๊ณ rageface๋ฅผ ์์ง์ฌ์ ์ ๊ทธ ์ ์ด ์๋ง์ด๋๋์ง ๊ทธ๋ฆฌ๊ณ PIXI์ ๋ฒ๊ทธ / ๋๋ฝ ๋ ๊ธฐ๋ฅ์ธ์ง ์๋๋ฉด ์ฝ๋์ ์ค์๊ฐ ์๋์ง ๋งํด ์ค ์ ์์ต๋๊น?
์ ์ด ์ค์ ๋ก ์ปจํ ์ด๋ ๋๋น์ ๋์ด์ ์ํฅ์ ๋ฏธ์น๊ณ ํด๋น ์์ฑ์ ์ฌ์ฉํ์ฌ ์ฒ์์ ์ ์ ๊ทธ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๋ํ codepen์ด ๋ ์ด์ ์๋ํ์ง ์์ต๋๋ค. ์ด์ ๋ ๋ฌด์์ ๋๊น?
์, ์ค์๋ก ์ด๊ธฐํ ํธ์ถ์ ์ฃผ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋์๊ฒ๋ ๋ง๊ฐ์ก์ต๋๋ค. ์, ๋ง์ต๋๋ค. ๊ทธ๊ฒ ์ ๊ฐํ๋ ์ผ์ด๋ฉฐ ๊ทธ๋ฆฌ๋๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ฐ์ํ๊ธฐ ์ํด ์ ์ ๊ทธ๋ฆฌ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด์ด ์ ์ ๊ทธ๋ฆฌ๊ธฐ ์ํด ์ ํํ ๋ฌด์์ ์ ์ ํ์๊ฒ ์ต๋๊น? ์ฐ๊ฒฐ๋ ๋ ๋๋ง ๋ ์ปจํ
์ด๋์ ์น์๋ฅผ ํญ์ ๋ณต์ฌํ๊ณ ์ค๋
์ง์ ๋ฐ ๊ธฐํ ์์น๋ฅผ ํ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ๋ณ๋์ ๋ฉํ ์ ์ฉ Rectangle
๊ฐ์ฒด๋ฅผ ์ค์ ํ์๊ฒ ์ต๋๊น? ๊ทธ๊ฒ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ์๋๋ผ ๊ณผ์ ์์ง๋์ด๋งํ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. ์ปจํ
์ด๋๊ฐ ์ผ๋ฐ DOM ์์์ฒ๋ผ "์ค๋ฒํ๋ก"๋ฅผ ๊ฐ์ง ์์๋ ์ด์ ๊ฐ ์์ต๋๊น?
๋๋ ํด๊ฒฐ์ฑ ์ด ์๊ธฐ ๋๋ฌธ์ด ์๋๋ผ์ด ๋น๋ ผ๋ฆฌ์ ์ธ ํ๋์ ๋ํ ์ ๋น์ฑ์ ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ด์๋ก ๊ฒ์ํ์ต๋๋ค. ํนํ ์ ์ด ์ค์ ๋ก ์ปจํ ์ด๋ ๊ฒฝ๊ณ๋ฅผ ๋ฒ์ด๋์ง ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ์๋ฆฌ์์ ๊ฐ์ฅ์๋ฆฌ๋ก ๊ทธ๋ ค์ง๋๋ค. ๋ด๊ฐ ๊ตฌ์ถ์ค์ธ ์ ํ์์ ์ฌ์ฉ์๋ ์ฝํ ์ธ ์ ๋ง์ ์ํธ ์์ฉ์ํด์ผํฉ๋๋ค. ์ฅ๋ฉด์ ๋ชจ๋ ๊ฐ์ฒด์ ๋ํด "์ฐธ์กฐ ์ฌ๊ฐํ"์ ์ค์ ํด์ผํ๋ ๊ฒฝ์ฐ ์ฝ๋๊ฐ ๋งค์ฐ ์ง์ ๋ถํ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ด๋ ค์ธ๊น ๊ฑฑ์ ๋ฉ๋๋ค. .
๋ด ์ฝ๋์ "์ค์"๊ฐ ์๋ค๊ณ ์ธ๊ธํ์ จ์ต๋๋ค. ๊ทธ ์ค์๋ ๋ฌด์์ ๋๊น? ๋๋ ๋งค์ฐ ์ฒ ์ ํ ๊ฒ์ํ์ง๋ง ์๋ชป๋ ๋ ผ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๋ณ๊ฒฝ๋๋ "๋๋น / ๋์ด"๋์ ์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ์ญ์์ค. ํ์ํ ๊ฒฝ์ฐ ํด๋น ๋ณ์๋ฅผ ์ ๋ฐ์ดํธํ์ญ์์ค.
var globalRect = new PIXI.Rectangle(0, 0, renderer.width/renderer.resolution, renderer.height/renderer.resolution);
"๋ก์ปฌ"๊ฒฝ๊ณ๋ฅผ ์ํ๋ฉด ๋ง๋ค์ง ๋ง pixi์ ๋์ผํ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
container.myRect = new PIXI.Rectangle(0, 0, renderer.width/renderer.resolution, renderer.height/renderer.resolution);
์ค์๋ PIXI์ ๋ ์ด์์์ด ์ ํ ์๋ค๋ ๊ฒ์ ๋๋ค. "๋๋น"์ "๋์ด"๋ ๋ค๋ฅธ ์๋ฏธ๋ฅผ ๊ฐ์ต๋๋ค. ์์์ด ์ํฅ์์ฃผ๊ธฐ ๋๋ฌธ์ ๋ถ๋ชจ ๋๋น ๋์ด๋ก ์์ ์ขํ๋ฅผ ๊ณ ์ ํ ์ ์์ต๋๋ค.
PIXI๊ฐ ๊ทธ๋ํฝ ๋ด๋ถ์ ๊ทธ๋ฆฐ ์ผ๋ถ ์ง์ฌ๊ฐํ์ ๋๋น / ๋์ด๋ฅผ ์ํ๋์ง ์ ์์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ๊ฒฝ๊ณ์ ๋ํ ์ ์ผํ ํฉ๋ฆฌ์ ์ธ ๋ ผ๋ฆฌ๋ ๊ทธ ์์์๋ ๋ชจ๋ ๊ฒ์ ๊ฐ์ ธ ์ค๋ ๊ฒ์ ๋๋ค.
๊ฐ๊ฐ (w = 10, h = 10), ํ๋๋ (0,0)์ ์๊ณ ๋ ๋ฒ์งธ๋ (100000, 100000)์์๋ ๋ ๊ฐ์ ์คํ๋ผ์ดํธ๊ฐ์๋ ์ปจํ ์ด๋๊ฐ ์๋ค๊ณ ์์ํด๋ณด์ญ์์ค. ์ปจํ ์ด๋์ ๋๋น์ ๋์ด๋ ์ผ๋ง์ ๋๊น? ๋ํ ์ฐ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ๋ ๊ฒฝ๊ณ๋ฅผ ์์ ํ๋๋ผ๋ ์ด๋ค ์ํฅ์ ๋ฏธ์น ๊น์?
๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ๋ ๋๋น์ ๋์ด๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ปจํ ์ด๋ ๋ด๋ถ์ ์์์ ์ด๋ค ์ํฅ์ ๋ฏธ์น ๊น์?
๋๋ด์ด ์๋๋๋ค. ๋ค๋ฅธ API ๋์์ธ์ ์์ํ๊ธฐ๊ฐ ์ ๋ง ์ด๋ ต์ต๋๋ค. ๋ช ๊ฐ์ง ์์ด๋์ด๊ฐ ์์ผ๋ฉด ๋ ์ด์์์ ๋ํ ์ถ๊ฐ ๊ตฌ์ฑ ์์๊ฐ ๋ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์์ฑํ์ญ์์ค. ์ฐ๋ฆฌ๋ ์ผ๋ถ GUI๊ฐ ์๋ ์คํ ์ด์ง ๋ ๋๋ง์ ๋ค๋ฃจ๊ณ ์๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์ญ์์ค. ์ฑ๋ฅ์ ์ค์ ๋ฌธ์ ์ ๋๋ค.
์๋ ํ์ธ์ @megakoresh , ์ฌ๊ธฐ์์ ํผ๋์ ์ผ์ผํค๋ ์์ธ์ ์๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. pixi์ ์ฃผ์ ๋ชฉ์ ์ 2D ๊ฐ์ฒด๋ฅผ ๋ ๋๋งํ๋ ๊ฒ์ด๋ฏ๋ก ๊ฑฐ์ ๋ชจ๋ API๊ฐ์ด๋ฅผ ์ํด ์กฐ์ ๋ฉ๋๋ค. ๊ฒฝ๊ณ๋ ํนํ ํผ๋ ์ค๋ฌ์ธ ์ ์์ต๋๋ค.
pixi์์ Sprite์ ๊ฒฝ๊ณ๋ ํ ์ค์ฒ์ ์ํด ์ ์๋ฉ๋๋ค. ์ฆ, ๋ ๋๋ง ๋ ๊ฐ์ฒด์ ์ต์ข ๊ฒฐ๊ณผ ํฌ๊ธฐ์ ๋๋ค. ์ ์ฌํ๊ฒ, ์ปจํ ์ด๋๋ _not drawn_์ด๋ฏ๋ก ๊ทธ ๊ฒฝ๊ณ๋ ํฌํจ ๋ ์์์ ์ํด ์ ์๋ฉ๋๋ค. ํนํ, ๊ทธ ์์ด๋ค์ ๊ฒฝ๊ณ์ ์ํด. Graphics ๊ฐ์ฒด์ ๊ฒฝ์ฐ ๊ฒฝ๊ณ๋ ๊ทธ ์์ ๊ทธ๋ฆฌ๋ ์ง์ค๋ฉํธ๋ฆฌ์ ์ํด ์ ์๋ฉ๋๋ค. ํ์ฌ ๊ฒฝ๊ณ ์ธ๋ถ์ Graphics ๊ฐ์ฒด์์ ๋ค๋ฅธ ์ง์ฌ๊ฐํ์ ๊ทธ๋ฆฌ๋ฉด ๊ฒฝ๊ณ๊ฐ ํ์ฅ๋์ด ์๋ก ๊ทธ๋ฆฐ ํ์์ ํฌํจํฉ๋๋ค.
๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ Pixi์์ ๊ฒฝ๊ณ๊ฐ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋๋์ง์ ๋ํ ๋น ๋ฅธ ๊ฐ๋ ์ ์ ๊ณตํฉ๋๋ค.
์ด์ , ํนํ ๊ทํ์ ์๋ฅผ ๋ค์ด, ๊ทํ์ ๋ฌธ์ ๋ Graphics ๊ฐ์ฒด์ ๋ํด ๊ฒฝ๊ณ๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ํ ์คํด์์ ๋น๋กฏ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๋๋ฅผ ๊ทธ๋ฆฌ๋ ๊ฒ์ด ๋
น์ ์ฌ๊ฐํ ( wonderfulRectangle
)์ ํฌํจํ๋ Graphics ๊ฐ์ฒด ( desktop1
)์ ๊ฒฝ๊ณ๋ฅผ ๋ณ๊ฒฝํ๋ค๋ ์ฌ์ค์ด ๋๋ฝ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ๊ทธ๋ฆฌ๊ธฐ ํ ๊ทธ๋ฆฌ๋๊ฐ ๋ทฐํฌํธ์ ํฌ๊ธฐ๋ฅผ ๋ฒ์ด๋ ํ์ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ทฐํฌํธ ์ธ๋ถ ์ง์ค๋ฉํธ๋ฆฌ๋ฅผ ํฌํจํ๋๋ก ์์ Graphics ๊ฐ์ฒด ( desktop1
)์ ๊ฒฝ๊ณ๊ฐ ํ์ฅ๋ฉ๋๋ค. ์ด๋ ๊ฒํ๋ฉด ๋๋น๊ฐ ๋ ์ปค์ ธ ๋ค์ ๊ทธ๋ฆฌ๋ ๊ณ์ฐ์ด ์ค๋จ๋๊ณ ์ฃผ๊ธฐ๊ฐ ๊ณ์๋ฉ๋๋ค. ์ ์๋ ๋๊ป๊ฐ ์์ผ๋ฏ๋ก ๋๋น๋ฅผ ์ฐจ์งํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์์๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ง์์ ๋ ์ค๋ฅด๋ ํ ๊ฐ์ง๋ ๊ทธ๋ฆฌ๋๊ฐ ๋ทฐํฌํธ์ ์ ์ฒด ํฌ๊ธฐ๋ฅผ ์ฑ์ฐ๋ฏ๋ก ๋ถ๋ชจ์ ํฌ๊ธฐ๊ฐ ์๋ ๋ทฐํฌํธ์ ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, ๋ทฐํฌํธ ์ธ๋ถ์ ๋ ๋ง์ ์ง์ค๋ฉํธ๋ฆฌ๋ฅผ ๊ทธ๋ฆด ๋ ๊ทธ๋ฆฌ๋ ๊ณ์ฐ์ด ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๋ ๋๋ง ๋ทฐํฌํธ๋ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ต์
์ด ์๋ ๊ฒฝ์ฐ, ์๋ฅผ ๋ค์ด ๊ทธ๋ฆฌ๋ ์์ญ์ ๋ทฐํฌํธ์ ํฌ๊ธฐ๊ฐ ์๋๋๋ค. ๊ทธ๋ฆฌ๋ ์์ญ์ "์๋ ค์ง ํฌ๊ธฐ"๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ณ์ฐ์ ์ํ ํ ์ ์์ต๋๋ค. ๋๋ Ivan์ด ์ ์ Rectangle
์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด ๋งํ๋ ค๊ณ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ๋ฆฌ๋๊ฐ 800x600์ด๋ผ๊ณ ๊ฒฐ์ ํ๊ณ ์ฅ๋ฉด์์ ์ค์ ๋ ๋๋ง ๋ ์ค๋ธ์ ํธ ๊ฒฝ๊ณ๋ฅผ ์คํ ํ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ๊ณ์ฐ์ ์ํํฉ๋๋ค.
๋ด๊ฐ ์ค๋ช ํ ๋ทฐํฌํธ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋๋ก ์ฝ๋ ํ์ ์ ๋ฐ์ดํธํ์ต๋๋ค. ๋ ๊ถ๊ธํ ์ ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์!
LOL k. ๊ทธ๋์ ์ฌ๋ฌ๋ถ์ ํ์ ํฉ์ณ์ ์ ๋ ๋ฌธ์ ์ ํต์ฌ์ ์ดํดํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์บ๋ฒ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป ์์ฃผ ํฉ์ณ์ง๋ฉด ๊ฐ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ๋ถ๋ช ํ ๊ทธ๋ ์ง ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์๊ฐ์ ๊ฐ์ฒด ๊ทธ๋ฃนํ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ค๋ฒํ๋ก์ ๊ฐ์ ๊ฒ์ ๋ฒ์์ ํฌํจ๋์ง ์๊ณ ๊ฐ๋จํฉ๋๋ค (๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ ๋ง์ด ๋ฐฐ์ธ ๋ ํ๋ฌ๊ทธ์ธ์ ๋ง๋ค ์ ์์). PIXI ์์ฒด๊ฐ ์ฒ๋ฆฌํ๋ ๋์ ์ง์ ์ฒ๋ฆฌํด์ผํฉ๋๋ค. ํ๋ฉด์ ํ์ํ๋ ๊ฒ๋ฟ์ ๋๋ค. ์ฌ๊ฑด์ด ์ข ๊ฒฐ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์ด ์ค๋ ๋๋ ๋ซํ ํ ์ต๊ทผ ํ๋์ด ์์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ ๊ฒผ์ต๋๋ค. ๊ด๋ จ ๋ฒ๊ทธ์ ๋ํ ์ ๋ฌธ์ ๋ฅผ์ฌ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ ํ์ธ์ @megakoresh , ์ฌ๊ธฐ์์ ํผ๋์ ์ผ์ผํค๋ ์์ธ์ ์๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. pixi์ ์ฃผ์ ๋ชฉ์ ์ 2D ๊ฐ์ฒด๋ฅผ ๋ ๋๋งํ๋ ๊ฒ์ด๋ฏ๋ก ๊ฑฐ์ ๋ชจ๋ API๊ฐ์ด๋ฅผ ์ํด ์กฐ์ ๋ฉ๋๋ค. ๊ฒฝ๊ณ๋ ํนํ ํผ๋ ์ค๋ฌ์ธ ์ ์์ต๋๋ค.
pixi์์ Sprite์ ๊ฒฝ๊ณ๋ ํ ์ค์ฒ์ ์ํด ์ ์๋ฉ๋๋ค. ์ฆ, ๋ ๋๋ง ๋ ๊ฐ์ฒด์ ์ต์ข ๊ฒฐ๊ณผ ํฌ๊ธฐ์ ๋๋ค. ์ ์ฌํ๊ฒ, ์ปจํ ์ด๋๋ _not drawn_์ด๋ฏ๋ก ๊ทธ ๊ฒฝ๊ณ๋ ํฌํจ ๋ ์์์ ์ํด ์ ์๋ฉ๋๋ค. ํนํ, ๊ทธ ์์ด๋ค์ ๊ฒฝ๊ณ์ ์ํด. Graphics ๊ฐ์ฒด์ ๊ฒฝ์ฐ ๊ฒฝ๊ณ๋ ๊ทธ ์์ ๊ทธ๋ฆฌ๋ ์ง์ค๋ฉํธ๋ฆฌ์ ์ํด ์ ์๋ฉ๋๋ค. ํ์ฌ ๊ฒฝ๊ณ ์ธ๋ถ์ Graphics ๊ฐ์ฒด์์ ๋ค๋ฅธ ์ง์ฌ๊ฐํ์ ๊ทธ๋ฆฌ๋ฉด ๊ฒฝ๊ณ๊ฐ ํ์ฅ๋์ด ์๋ก ๊ทธ๋ฆฐ ํ์์ ํฌํจํฉ๋๋ค.
๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ Pixi์์ ๊ฒฝ๊ณ๊ฐ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋๋์ง์ ๋ํ ๋น ๋ฅธ ๊ฐ๋ ์ ์ ๊ณตํฉ๋๋ค.
์ด์ , ํนํ ๊ทํ์ ์๋ฅผ ๋ค์ด, ๊ทํ์ ๋ฌธ์ ๋ Graphics ๊ฐ์ฒด์ ๋ํด ๊ฒฝ๊ณ๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ํ ์คํด์์ ๋น๋กฏ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๋๋ฅผ ๊ทธ๋ฆฌ๋ ๊ฒ์ด ๋ น์ ์ฌ๊ฐํ (
wonderfulRectangle
)์ ํฌํจํ๋ Graphics ๊ฐ์ฒด (desktop1
)์ ๊ฒฝ๊ณ๋ฅผ ๋ณ๊ฒฝํ๋ค๋ ์ฌ์ค์ด ๋๋ฝ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค.์ฒซ ๋ฒ์งธ ๊ทธ๋ฆฌ๊ธฐ ํ ๊ทธ๋ฆฌ๋๊ฐ ๋ทฐํฌํธ์ ํฌ๊ธฐ๋ฅผ ๋ฒ์ด๋ ํ์ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ทฐํฌํธ ์ธ๋ถ ์ง์ค๋ฉํธ๋ฆฌ๋ฅผ ํฌํจํ๋๋ก ์์ Graphics ๊ฐ์ฒด (
desktop1
)์ ๊ฒฝ๊ณ๊ฐ ํ์ฅ๋ฉ๋๋ค. ์ด๋ ๊ฒํ๋ฉด ๋๋น๊ฐ ๋ ์ปค์ ธ ๋ค์ ๊ทธ๋ฆฌ๋ ๊ณ์ฐ์ด ์ค๋จ๋๊ณ ์ฃผ๊ธฐ๊ฐ ๊ณ์๋ฉ๋๋ค. ์ ์๋ ๋๊ป๊ฐ ์์ผ๋ฏ๋ก ๋๋น๋ฅผ ์ฐจ์งํฉ๋๋ค.์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์์๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ง์์ ๋ ์ค๋ฅด๋ ํ ๊ฐ์ง๋ ๊ทธ๋ฆฌ๋๊ฐ ๋ทฐํฌํธ์ ์ ์ฒด ํฌ๊ธฐ๋ฅผ ์ฑ์ฐ๋ฏ๋ก ๋ถ๋ชจ์ ํฌ๊ธฐ๊ฐ ์๋ ๋ทฐํฌํธ์ ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, ๋ทฐํฌํธ ์ธ๋ถ์ ๋ ๋ง์ ์ง์ค๋ฉํธ๋ฆฌ๋ฅผ ๊ทธ๋ฆด ๋ ๊ทธ๋ฆฌ๋ ๊ณ์ฐ์ด ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๋ ๋๋ง ๋ทฐํฌํธ๋ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ต์ ์ด ์๋ ๊ฒฝ์ฐ, ์๋ฅผ ๋ค์ด ๊ทธ๋ฆฌ๋ ์์ญ์ ๋ทฐํฌํธ์ ํฌ๊ธฐ๊ฐ ์๋๋๋ค. ๊ทธ๋ฆฌ๋ ์์ญ์ "์๋ ค์ง ํฌ๊ธฐ"๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ณ์ฐ์ ์ํ ํ ์ ์์ต๋๋ค. ๋๋ Ivan์ด ์ ์
Rectangle
์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด ๋งํ๋ ค๊ณ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ๋ฆฌ๋๊ฐ 800x600์ด๋ผ๊ณ ๊ฒฐ์ ํ๊ณ ์ฅ๋ฉด์์ ์ค์ ๋ ๋๋ง ๋ ์ค๋ธ์ ํธ ๊ฒฝ๊ณ๋ฅผ ์คํ ํ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ๊ณ์ฐ์ ์ํํฉ๋๋ค.๋ด๊ฐ ์ค๋ช ํ ๋ทฐํฌํธ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋๋ก ์ฝ๋ ํ์ ์ ๋ฐ์ดํธํ์ต๋๋ค. ๋ ๊ถ๊ธํ ์ ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์!
http://codepen.io/anon/pen/yarVwm?editors=0010