อย่างแรก, Texture vs TextureRegion: เมื่อคุณทำบางอย่างเช่น Texture t = Texture (path), คุณกำลังโหลดมันเข้าสู่ GPU นอกจากนี้คุณควรโหลดพลังงานของพื้นผิวที่ 2 คุณสามารถทำงานร่วมกับวิธีแก้ปัญหาอื่น ๆ (Texture.setEnforcePotImages = false) แต่ขอแนะนำให้ใช้ pow เป็น 2
ตอนนี้ TextureRegion ใช้ "ชิ้นส่วน" จาก Texture ไม่ว่าจะเป็นมิติใด ข้อดีของการมี Texture 1 Texture และ TextureRegion ของ TextureRegion หลายตัวนั้นคือคุณไม่ได้โหลดทุกส่วนลงใน GPU
อย่างที่คุณคิดเมื่อคุณต้องการวาดด้วย SpriteBatch มันมีประสิทธิภาพมากขึ้นในการใช้ TextureRegion แทนที่จะเป็น Texture หลายอันฉันขอโทษภาษาอังกฤษของฉันไม่ดีพอ นี่คือคำอธิบายที่ดี: Textures TextureRegion & SpriteBatch
ตอนนี้คุณต้องการใช้ TextureRegion และรูปภาพเดียวหนึ่งภาพที่มีความละเอียด 2 ระดับด้วยสไปรต์และรูปภาพทั้งหมด คุณต้องสร้าง TextureRegions พร้อมพิกัดและมิติทั้งหมดหรือไม่ คุณจำเป็นต้องเปิดโปรแกรมระบายสีเพื่อนับจำนวนพิกเซลหรือไม่ Noooo คุณทำไม่ได้ คุณสามารถใช้สิ่งที่ต้องการTexturePacker มันจะแพ็คทุกพื้นผิวเป็นภาพเดียวและสร้างไฟล์. pack พร้อมมิติข้อมูลและพิกัดของทั้งหมด
ผลลัพธ์จะเป็นดังนี้:
แทนที่จะสร้าง Texture ให้สร้าง TextureAtlas ดังนี้:
ตอนนี้การสร้าง TextureRegions ของคุณจะง่ายเหมือน:
(โปรดทราบว่าชื่อของพื้นที่นั้นเป็นชื่อของภาพต้นฉบับโดยไม่มีนามสกุล)
Sprite เก็บข้อมูลรูปทรงเรขาคณิตสีและพื้นผิวสำหรับการวาด Sprite 2D โดยใช้ Batch หมายความว่าคุณสามารถหมุนและเคลื่อนที่ได้อย่างง่ายดาย ฉันสร้างคลาสเอนทิตีของฉันเองและฉันไม่ต้องการคลาส Sprite คุณอาจจะทำเช่นเดียวกัน ฉันไม่พบว่าชั้นนี้มีประโยชน์จริงๆ
คลาสรูปภาพสืบทอดจากนักแสดง หมายความว่าคุณสามารถเพิ่มเข้าไปในสเตจได้ มันเป็นส่วนหนึ่งของแพ็คเกจ Scene2D หากคุณยังใหม่กับ libgdx และคุณไม่รู้เกี่ยวกับแพ็คเกจนี้นี่เป็นข้อมูลที่เพียงพอสำหรับคุณเกี่ยวกับคลาสนี้ เป็นหัวข้อที่น่าสนใจ แต่ไม่ต้องตอบในคำถามนี้
หวังว่าจะช่วย :)