2012-09-22 174 views
2

我想將兩個精靈合併爲一個。 例如:在一個精靈中組合兩個精靈(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」。

任何幫助,高度讚賞。

回答

0

我會創建一個複合類來保存和管理它組成的精靈。

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