Libgdx: Actor๊ฐ€ ๋‹ค๋ฅธ Actor๋ฅผ ์ž์‹์œผ๋กœ ํฌํ•จํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2018๋…„ 10์›” 17์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: libgdx/libgdx

๋ฌธ์ œ ์„ธ๋ถ€์ •๋ณด

์•กํ„ฐ๋Š” ์žฅ๋ฉด ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ๋…ธ๋“œ๋Š” OS์˜ ํด๋”์™€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋”๋Š” ๋‹ค๋ฅธ ํด๋”๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ƒ์œ„ ํด๋”์— ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. libgdx์—์„œ Actor๋Š” OS์˜ ํŒŒ์ผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์€ Group (ํด๋”)์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ž์ฒด์— ๋‹ค๋ฅธ Actor (ํŒŒ์ผ)์„ ํฌํ•จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐ์ฒด ์ฃผ์œ„์— ๊ฐ์ฒด์˜ ๊ถค๋„ ํšŒ์ „์„ ๋งŒ๋“œ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค(์ถ”๊ฐ€ ์ˆ˜ํ•™ ๋ฐ ๋ž˜ํผ ๊ฐ์ฒด ๋˜๋Š” ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ). ๋˜๋Š” Camera ๋ฅผ Actor ์— ํ• ๋‹นํ•˜์—ฌ ์œ„์น˜๋ฅผ ๋™๊ธฐํ™” ์ƒํƒœ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค(์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜ #5409).

LibGDX ๋ฐ/๋˜๋Š” ๊ด€๋ จ ์ข…์†์„ฑ ๋ฒ„์ „

1.9.8

์˜ํ–ฅ์„ ๋ฐ›๋Š” ํ”Œ๋žซํผ์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค

  • [X] ์•ˆ๋“œ๋กœ์ด๋“œ
  • [X] iOS(๋กœ๋ณด๋ธŒ์— )
  • [X] iOS(ํ™˜๊ฒฝ๋ถ€)
  • [X] HTML/GWT
  • [X] ์œˆ๋„์šฐ
  • [X] ๋ฆฌ๋ˆ…์Šค
  • [X] ๋งฅOS

๋‹ค๋ฅธ ๊ฒŒ์ž„ ์—”์ง„์—์„œ ์œ ์‚ฌํ•œ ๋””์ž์ธ์„ ๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค(cocos2dx, unity, UE4 ๋ชจ๋‘ ๋‹ค๋ฅธ ๊ฐœ์ฒด์— ๊ฐœ์ฒด๋ฅผ ์ค‘์ฒฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค).

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Actor๋ฅผ ์ถ”์ƒ ํŒŒ์ผ๋กœ, Group์„ ํด๋”๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ทธ๋ฃน์€ ๋‹ค๋ฅธ ๊ทธ๋ฃน ๋“ฑ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•กํ„ฐ๋Š” ํŒŒ์ผ(์˜ˆ: ์ด๋ฏธ์ง€) ๋˜๋Š” ํด๋”(๊ทธ๋ฃน)์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์•กํ„ฐ๋ฅผ ํฌํ•จํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
์ด ๋””์ž์ธ์€ ๋‚˜์—๊ฒŒ ์™„๋ฒฝํ•˜๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

๋ชจ๋“  4 ๋Œ“๊ธ€

Actor๋ฅผ ์ถ”์ƒ ํŒŒ์ผ๋กœ, Group์„ ํด๋”๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ทธ๋ฃน์€ ๋‹ค๋ฅธ ๊ทธ๋ฃน ๋“ฑ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•กํ„ฐ๋Š” ํŒŒ์ผ(์˜ˆ: ์ด๋ฏธ์ง€) ๋˜๋Š” ํด๋”(๊ทธ๋ฃน)์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์•กํ„ฐ๋ฅผ ํฌํ•จํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
์ด ๋””์ž์ธ์€ ๋‚˜์—๊ฒŒ ์™„๋ฒฝํ•˜๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

@mgsx-dev ์ข‹์•„์š”, ์ƒ์ƒํ•ด๋ณด์„ธ์š”. ๋‚˜๋Š” ๋‹ค๋ฆฌ, ํŒ”, ๋ชธ ๋“ฑ์˜ ์—ฌ๋Ÿฌ ์Šคํ”„๋ผ์ดํŠธ์—์„œ ํ•ฉ์„ฑ ์บ๋ฆญํ„ฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด์ค‘ ์ž‘์—…์„ ๋งŒ๋“ค๊ณ , ๊ทธ๋“ค์„ ์œ„ํ•œ ์•กํ„ฐ์™€ ๊ทธ๋ฃน์„ ๋งŒ๋“ค๊ณ , ๋ชจ๋“  ์•กํ„ฐ๋ฅผ ๊ทธ๋ฃน์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋ชจ๋“  ๊ทธ๋ฃน์„ ๋‹ค๋ฅธ ๊ทธ๋ฃน์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฃน์—๋Š” ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์œ ๋ฐœํ•˜๋Š” ์•กํ„ฐ(์ผ๋ถ€ ์ œ์™ธ)์™€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฃน์„ ์‚ญ์ œํ•˜๊ณ  ์•กํ„ฐ๋ฅผ ์ค‘์ฒฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ฉด ์‚ถ์ด ๋” ์‰ฌ์›Œ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ด๋ฅผ ๋‚ณ๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋ญ ์–ด๋•Œ์„œ? ๋ถ€๋ชจ ์ด๋ฏธ์ง€ ์œ„์˜ ์ด๋ฏธ์ง€ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๊ฑฑ์ •๋œ๋‹ค๋ฉด ์บ๋ฆญํ„ฐ ๋ถ€๋ถ„์— scene2d ์•กํ„ฐ๋ฅผ ์ „ํ˜€ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋ฌด๊ฑฐ์šฐ๋ฉฐ ๋†’์€ ์„ธ๋ถ„์„ฑ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ ๋น ๋ฅธ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ Actor ๋Š” ์ตœ์†Œ ~11๊ฐœ์˜ ์ถ”๊ฐ€ ๊ฐœ์ฒด๋ฅผ ํ• ๋‹นํ•˜๊ณ  Group ๋Š” ~8๊ฐœ๋ฅผ ๋” ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์„ ๋ณ‘ํ•ฉํ•˜๋ฉด ๋ชจ๋“  Actor ์— ๋Œ€ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์žŽ๋งŒ ์žˆ๋Š” ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ์•กํ„ฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฆฌํ”„ ๋…ธ๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์€ ์‹ค์ œ๋กœ ์ค„์–ด๋“ค์ง€ ์•Š๊ณ  ์˜ฌ๋ผ๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

๋งํ•  ๊ฒƒ๋„ ์—†์ด Group ์—์„œ ๋ณ€ํ™˜์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๊ณ  ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฌ๋ฉด ๋ Œ๋”๋ง ์„ฑ๋Šฅ์ด ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค( Group ์˜ ๊ธฐ๋ณธ draw ๊ตฌํ˜„์„ ๊ฐ€์ •ํ•˜๊ณ  SpriteBatch ), ์ด๋Ÿฌํ•œ ๋ณ€ํ™˜๋œ ๊ฐ ๋ฌด์Šน๋ถ€๋Š” ์ถ”๊ฐ€ Batch.flush() -> ๋ฌด์Šน๋ถ€ ํ˜ธ์ถœ์„ ์œ ๋ฐœํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

scene2d ๋Š” ๋‹จ์ˆœํžˆ ๊ทธ๋Ÿฌํ•œ ์šฉ๋„๋กœ ์„ค๊ณ„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์•กํ„ฐ๊ฐ€ ๊ทธ๋ฃน์ธ ๊ฒฝ์šฐ scene2d๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ Darkyenus๊ฐ€ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ _๋ชจ๋“ _ ์žฅ๋ฉด ๊ทธ๋ž˜ํ”„ ๋…ธ๋“œ๊ฐ€ ๋” ๋ฌด๊ฑฐ์›Œ์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ฃน์—๋Š” ์ž์‹์ด ์žˆ๊ณ  ์•กํ„ฐ์—๋Š” ์—†๋Š” ๋ณ€ํ™˜ ํ–‰๋ ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹ค๋ฆฌ, ํŒ”, ๋ชธ ๋“ฑ์˜ ์—ฌ๋Ÿฌ ์Šคํ”„๋ผ์ดํŠธ์—์„œ ํ•ฉ์„ฑ ์บ๋ฆญํ„ฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด์ค‘ ์ž‘์—…์„ ๋งŒ๋“ค๊ณ  ๋ฐฐ์šฐ์™€ ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํšจ์œจ์„ฑ์„ ๊ฑฑ์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๋ฃน๊ณผ ์ด๋ฏธ์ง€๋งŒ ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋‹น์‹ ์˜ ์‹ ์ฒด ๋ถ€์œ„์— ๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜๊ณ  Group#draw์—์„œ ํ•„์š”ํ•œ ๊ฒƒ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ณณ์—์„œ ๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ๋ฐฐ์šฐ์™€ ๊ทธ๋ฃน์ด ๋‘ ์„ธ๊ณ„์˜ ์žฅ์ ์„ ๋ชจ๋‘ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

scene2d๋Š” ๋‹จ์ˆœํžˆ ๊ทธ๋Ÿฐ ์šฉ๋„๋กœ ์„ค๊ณ„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„ ๋™์˜ํ•˜๊ณ  ์Šค์ผˆ๋ ˆํƒˆ ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ๊ฒฝ์šฐ (๋ฌผ๋ก ) Spine ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ, CPU ๋˜๋Š” GPU ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ „์— scene2d๋กœ ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‹œ์ž‘ ์‹œ Spine์€ 5291๊ฐœ์˜ ๋น„๊ทธ๋ฃน ์•กํ„ฐ์™€ 3713๊ฐœ์˜ ๊ทธ๋ฃน์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์Šคํฌํ†ฑ ์•ฑ์ด์ง€๋งŒ ~9k ๋ฐฐ์šฐ์™€ ๊ทธ๋ฃน์€ ์™„์ „ํžˆ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๋ฐฐ๊ฒฝ๊ณผ ํด๋ฆฌํ•‘์„ ์‚ฌ์šฉํ•˜๋Š” ๋ช‡ ๊ฐœ์˜ ๊ทธ๋ฃน์œผ๋กœ ์ธํ•ด ์ „์ฒด UI๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ 13๋ฒˆ์˜ ์ผ๊ด„ ํ”Œ๋Ÿฌ์‹œ๋งŒ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋ณ€ํ™˜์ด ํ™œ์„ฑํ™”๋œ ๊ทธ๋ฃน์ด ๋งŽ์€ ๊ฒฝ์šฐ CpuSpriteBatch๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๊ด„ ํ”Œ๋Ÿฌ์‹œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰