2013-04-20 77 views
0

我有一個圖像的自定義實現動畫。我想使用最少的內存和處理器時間來渲染和複製這個類的實例的多個副本。我該如何解決它?無論何時我需要另一個,或者是否存在一些適當的或建議的複製Image實例的方法,它只是最容易重新創建它。我問這是因爲我找不到拷貝構造函數,我不知道.clone()是否在Image中實現。LibGdx複製Actor的正確方法是什麼?

回答

1

如果你真的想要關心記憶,你可以給所有的演員相同的圖像。但是,如果你以某種方式改變圖像,並且在其中一個Actor上改變圖像,它會在所有演員身上發生改變(我用一個精靈做了它,並改變了TextureRegion,我的所有怪物都看着同一個方向)。但是,如果您只是擁有相同的圖像,則您可以創建對象並將所有相同的引用給予一個圖像。
例如像這樣:

public ArrayList<Actor> generateImageActor(){ 
     ArrayList<Actor> temp = new ArrayList<Actor>(); 
     Image img = new Image(____); 
     for(int i = 0; i <10; i++){ 
      MyActor act = new MyActor(img); 
      temp.add(act); 
     } 
     return temp; 
    } 


如果你refare一個圖像或總是一個新形象的渲染沒有得到任何效果。我只是拍了照片和它的膠印並繪製它。因此,如果您拒絕10個演員中的1個圖像,則其具有相同的rendertime,否則如果您有10個演員擁有該圖像的副本。
希望這會有所幫助。

+1

不是我正在尋找的東西,但我想我可以創建一個抽出TextureRegion並複製它的函數,您回答了問題,但是您發佈的代碼並不是我真正想要的。 – Lokiare 2013-04-21 09:53:56

+0

它不應該正是你所需要的,它只是一個例子,應該幫助你解決它。我不知道你的代碼,所以我不能真正爲你解決你的問題創建一個例子或代碼片段。你的想法應該與紋理區域一起工作! – BennX 2013-04-21 10:56:48

+0

是的,甚至沒有接近回答這個問題,但反正好的建議。 – 2015-11-28 08:48:03

相關問題