По-перше, Texture vs TextureRegion: Коли ви робите щось на кшталт Texture t = new Texture (path), ви завантажуєте це в GPU. Крім того, слід завантажувати потужність 2 текстури. Ви можете працювати з іншими резолюціями (Texture.setEnforcePotImages = false), але рекомендується використовувати Pow 2.
Тепер TextureRegion бере частину текстури, незалежно від її виміру. Перевагою наявності однієї текстури та декількох TextureRegion цієї текстури є те, що ви НЕ завантажуєте кожен регіон у GPU.
Як ви можете думати, коли ви хочете малювати за допомогою SpriteBatch, набагато ефективніше використовувати TextureRegion замість декількох текстур, вибачте, моя англійська мова недостатньо хороша. Ось хороше пояснення: Textures TextureRegion & SpriteBatch
Тепер ви хочете використовувати TextureRegion і одне єдине зображення потужністю 2 роздільної здатності з усіма спрайтами та зображеннями. Чи потрібно створювати TextureRegions з усіма координатами та розмірами? Вам потрібно відкрити фарбу для підрахунку пікселів? Нуо, ти цього не робиш. Ви можете використовувати щось на зразок TexturePacker . Він упакує кожну текстуру в одне зображення І створить .pack файл із розмірами та координатами всіх них.
Результат буде приблизно таким:
Замість створення Texture створіть TextureAtlas, як це:
Тепер, створити TextureRegions було б так просто, як:
(Зверніть увагу, що назва регіону - це ім'я оригінального зображення без розширення).
У спрайті зберігається інформація про геометрію, колір та текстуру для малювання двовимірних спрайтів за допомогою Пакетної. Це означає, що ви можете їх легко обертати і рухати. Я створив власний клас Entity, і мені не потрібен клас Sprite. Ви, певно, зробили б те саме. Я не вважаю цей клас справді корисним.
Клас зображень успадковується від Actor. Це означає, що ви можете додати його до етапу. Це частина пакету Scene2D. Якщо ви новачок у libgdx, і ви не знаєте про цей пакет, для вас достатньо інформації про цей клас. Це дійсно цікава тема, але не відповідати на це питання.
Сподіваюся, це допомагає :)