Đầu tiên, Texture vs TextureRegion: Khi bạn làm một cái gì đó như Texture t = new Texture (đường dẫn), bạn đang tải nó vào GPU. Ngoài ra, bạn nên tải sức mạnh của 2 kết cấu. Bạn có thể làm việc với các độ phân giải khác (Texture.setEnforcePotImages = false), nhưng được khuyến khích sử dụng pow 2.
Bây giờ, TextureRegion, lấy một "mảnh" từ Texture, bất kể đó là kích thước. Ưu điểm của việc có một Texture và nhiều TextureRegion của Texture đó, là bạn KHÔNG tải mọi vùng vào GPU.
Như bạn có thể nghĩ, khi bạn muốn vẽ bằng SpriteBatch, sử dụng TextureRegion thay vì nhiều Hoạ tiết sẽ hiệu quả hơn nhiều, tôi xin lỗi tiếng Anh của tôi không đủ tốt. Đây là một lời giải thích tốt: Hoạ tiết TextureRegion & SpriteBatch
Bây giờ, bạn muốn sử dụng TextureRegion và một hình ảnh duy nhất có độ phân giải 2 với tất cả các spritesheets và hình ảnh. Bạn có phải tạo TextureRegions với tất cả các tọa độ và kích thước không? Bạn có cần mở sơn để đếm pixel? Không, bạn không. Bạn có thể sử dụng một cái gì đó như TexturePacker . Nó sẽ đóng gói mọi kết cấu thành một hình ảnh VÀ tạo một tệp .pack với các kích thước và tọa độ của tất cả chúng.
Kết quả sẽ là một cái gì đó như thế này:
Thay vì tạo Texture, hãy tạo TextureAtlas, như thế này:
Bây giờ, việc tạo TextureRegions của bạn sẽ đơn giản như:
(Lưu ý rằng tên của khu vực là tên của hình ảnh gốc mà không có phần mở rộng).
Sprite giữ thông tin hình học, màu sắc và kết cấu để vẽ các họa tiết 2D bằng Batch. Điều này có nghĩa, bạn có thể dễ dàng xoay chúng và di chuyển. Tôi đã tạo lớp Thực thể của riêng mình và tôi không cần lớp Sprite. Bạn có thể sẽ làm như vậy. Tôi không tìm thấy lớp học này thực sự hữu ích.
Lớp hình ảnh kế thừa từ Diễn viên. Điều này có nghĩa là bạn có thể thêm nó vào một giai đoạn. Đây là một phần của gói Scene2D. Nếu bạn chưa quen với libgdx và bạn không biết về gói này, thì đây là thông tin đủ cho bạn về lớp này. Đây là một chủ đề thực sự thú vị, nhưng không trả lời trong câu hỏi này.
Hy vọng nó giúp :)