在一个精灵中组合两个精灵(Libgdx)

问题描述:

我想将两个精灵合并为一个。 例如:在一个精灵中组合两个精灵(Libgdx)

private Sprite spriteGirl; 
private Sprite spriteSweater; 
private Sprite spriteDressed; 
.................................................................. 
atlas = new TextureAtlas(Gdx.files.internal("data/images.pack")); 

spriteGirl = atlas.createSprite("girl"); 
spriteSweater = atlas.createSprite("sweater"); 
................................................................... 

“spriteSweater” 应被放置在精灵 “spriteGirl”(在某些坐标)。这个组合是精灵“spriteDressed”。

在此之后,生成的精灵“spriteDressed”可以是动画。

我宁愿单独移动“spriteDressed”而不是“spriteGirl”和“spriteSweater”。

任何帮助,高度赞赏。

我会创建一个复合类来保存和管理它组成的精灵。

public class CompositeSprite { 

    Array<Sprite> componentSprites; 

    public CompositeSprite() { 
     componentSprites = new Array<Sprite>(); 
    } 

    public void addComponentSprite(Sprite sprite) { 
     componentSprites.add(sprite); 
    } 

    // ... other methods left out for brevity 

    public void draw(SpriteBatch spriteBatch) { 
     for (Sprite sprite : componentSprites) { 
      sprite.draw(batch) 
     } 
    } 

} 
+0

谢谢。无论如何,我正在考虑在绘画之前结合这些精灵。 如果我们绘制“spriteGirl”和这个移动(随机)到一个点(x,y),这个位置应该连续计算,以便“spriteSweater”可以跟随“spriteGirl”的步骤,保持相对位置。 相反,如果我们在绘制之前组合精灵(spriteDressed),则不需要估计位置。 – user1691159

+0

在这种情况下,创建一个像素图,绘制两个图像,然后创建一个纹理。请注意,这不会很有效,但会符合您的要求。我仍然建议尝试复合方法,因为这样可以提高效率和灵活性。 –

+0

非常感谢您的帮助。我会尝试两种方法。 – user1691159