- ์ด๊ฑด ์ œ๊ฐ€ LibGDX Game Development Essentials ๋ผ๋Š” ์ฑ…์„ ๋ณด๋ฉด์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์œผ๋กœ ์ œ๊ฐ€ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ์•Œ๊ณ ์žˆ๋Š” ๊ฒƒ๊ณผ ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ์„ ๋ง์”€๋“œ๋ฆฌ๋ฉฐ, ํ˜น์—ฌ๋‚˜ ์ œ๊ฐ€ ์ž˜๋ชป ์ดํ•ดํ•œ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๋กœ ์ €์—๊ฒŒ ์ง€์‹์„ ์ข€ ๋‚˜๋ˆ„์–ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ^-^



์˜ค๋Š˜์€ Displaying graphics์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…์„ ํ•˜๋ คํ•ฉ๋‹ˆ๋‹ค.

์ผ ๋‹จ Texture๊ฐ€ ๋ญ”์ง€์— ๋Œ€ํ•ด์„œ ์ดํ•ด๋ฅผ ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๋„ค์š”. Texture๋ž€ GPU๋กœ ์ด๋ฏธ์ง€๊ฐ€ ์ „๋‹ฌ๋˜๋Š” ๋‹จ์œ„(?)๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๊ฒŒ expensive process๋ผ์„œ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ–ˆ๋Š”๋ฐ ๊ทธ๋ž˜์„œ ๋‚˜์˜จ๊ฒƒ์ด SpriteBatch์ž…๋‹ˆ๋‹ค.


SpriteBatch ํด๋ž˜์Šค๋Š”์œ„์น˜ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด์„œ ์ข€๋” ํšจ์œจ์ ์œผ๋กœ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ Texture๋ฅผ ์—ฌ๋Ÿฌ๊ตฐ๋ฐ์— ๋ฟŒ๋ ค์ค˜์•ผํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ Texture๊ฐ€ ๋ฐ”๋€Œ๊ฒŒ๋˜๋ฉด ๋น„ํšจ์œจ์ ์ธ๋ฐ์š” ์ด๋Ÿด ๋•Œ๋Š” texture packing๊ณผ์ •์„ ํ†ตํ•ด์„œ ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€๋ฅผ ํ•˜๋‚˜์˜ ํฐ ์ด๋ฏธ์ง€๋กœ ํ•ฉ์ณ์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


TextureRegion์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. TextureRegion์€ Texture์˜ ์กฐ๊ฐ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. Texture์˜ ์ผ๋ถ€๋ฅผ ๋–ผ์–ด๋‚ธ ๊ฒƒ์ด์ฃ . ์˜ˆ๋ฅผ๋“ค์–ด, ์ผ๋ฐ˜์ ์ธ ๋ฒฝ์ง€๋Š” ๋ฌด๋Šฌ๊ฐ€ ๋ฐ˜๋ณต์ด ๋˜์ฃ ? ์ด ๋ฐ˜๋ณต๋˜๋Š” ๋ฌด๋Šฌ๋ฅผ TextureRegion์ด๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.


๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ Sprite ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. Spriteํด๋ž˜์Šค๋Š” Texture์™€ ์œ„์น˜ ์ •๋ณด, ์‚ฌ์ด์ฆˆ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ํ•ฉ์ณ๋†“์€ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ™”๋ฉด์— ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ๋•Œ draw์ฝ”๋“œ๋‚ด์— ์œ„์น˜์ •๋ณด๋‚˜ ์‚ฌ์ด์ฆˆ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ Spriteํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.


์ž, ๊ทธ๋Ÿผ ์ด ์„ธ๊ฐ€์ง€๋ฅผ ์–ด๋–ค ๊ฒฝ์šฐ์— ์จ์•ผ ํ• ๊นŒ์š”?


์ผ๋‹จ ๊ฐ„๋‹จํ•œ ๊ฒŒ์ž„์„ ํ•˜๋‚˜ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.


์šฐ ์„  ๋ฐฐ๊ฒฝ(1)์ด ์žˆ๊ณ  ๊ทธ ์œ„์— ๊ทธ๋ ค์ง€๋Š” ์—ฌ๋Ÿฌ ์žฅ์• ๋ฌผ๋“ค(2)์ด ์žˆ๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐฐ๊ฒฝ์ด ์›€์ง์ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ๋„๋ก ๊ฒŒ์ž„์ง„ํ–‰ ๋‚ด๋‚ด ์Šคํฌ๋กค๋ง์ด ๋˜๋Š” ๊ตฌ๋ฆ„๋ฐฐ๊ฒฝ์ด๋‚˜ ๋•…์ด ์›€์ง์ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋„๋ก ํ•ด์ฃผ๋Š” ๋ถ€๋ถ„(3)์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ฃ .


1๋ฒˆ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ƒฅ ๊ณ ์ •ํ•ด๋†“์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Texture๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

2๋ฒˆ์˜ ๊ฒฝ์šฐ์—๋Š” ๊ณ„์† ์›€์ง์—ฌ์•ผ๋˜๋Š” ์•„์ดํ…œ๋“ค์ด๋ผ Sprite๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

3๋ฒˆ์˜ ๊ฒฝ์šฐ์—๋Š” TextureRegion์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ณด์ด์ง€ ์•Š๋Š” ์Šคํฌ๋กค๋ง ํšจ๊ณผ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ์—ฌ๋Ÿฌ๋ฒˆ ๊ทธ๋ฆผ์„ ๊ทธ๋ ค์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .


์ž, ์—ฌ๊ธฐ๊นŒ์ง€ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด์ž๋ฉด ๊ทธ๋ž˜ํ”ฝ ์ถœ๋ ฅํ•˜๊ธฐ์—๋Š” ์„ธ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.


1. SpriteBatch

2. TextureRegion

3. Sprite


์•„์ง ์ €๋„ ๋งŽ์ด ์‚ฌ์šฉํ•ด๋ณด์งˆ ์•Š์•„์„œ ์–ด๋–ค ๊ฒฝ์šฐ์— ์ด๋ ‡๊ฒŒ ์จ์•ผํ•œ๋‹ค๋ผ๊ณ  ๋”ฑ ์ž˜๋ผ์„œ ๋งํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ, ์ง€๊ธˆ ๋‹น์žฅ์€ ์œ„์— ์ž ๊น ์„ค๋ช…๋“œ๋ฆฐ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.



( ์กฐ๋งŒ๊ฐ„ ๊ฐ„๋žตํ•œ ์†Œ์Šค๊นŒ์ง€ ์˜ฌ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. )