2013-12-09 30 views
3

我是一位與libgdx引擎一起工作的新程序員,並且對精靈批處理的行爲感到疑惑。特別是如何在程序生命週期中向批處理添加精靈。到目前爲止,所有精靈的例子都使用了一些類似的代碼: batch.begin(); sprite.draw(batch); batch.end(); 等等,而且我不清楚自己如何繪製不同數量的精靈,因爲每個精靈都必須在批處理中調用。謝謝提前解釋!LibGDX Sprite批處理並在運行時添加新的精靈

+0

看看舞臺演員系統。它已經實現了一個「舞臺」,您可以添加所有演員。通過一個簡單的抽象舞臺,它吸引了每個演員的當前位置和當前狀態。你可以看看它的代碼來理解系統。也可以看看gameloop概念。 – BennX

+1

偉大的建議頭腦=吹了benn! – TypingTurtle

回答

2

簡而言之,將每次調用sprite.draw()想象爲在某個點繪製精靈的請求。每次調用sprite.draw()都會將該精靈添加到批處理中。當調用batch.end()時,所有添加到該批處理的精靈將被繪製並且該批處理將被清空。由於該批次的內容不是持久的(即在調用batch.end()時清空),因此每次使用它時都必須添加精靈和圖像。

在以下示例中,要繪製的所有精靈都存儲在精靈集合中,並且每次繪製時都將其添加到該批處理中,如果從一個render( )方法。

batch.begin(); 
for (sprite : sprites) { 
    sprite.draw(batch); 
} 
batch.end() 

現實的情況是更復雜一點,因爲精靈批量已滿時,下了幾個情況會刷新,但一個好的經驗法則是添加你要畫上的每個一切,每一幀。

+0

這正是我所尋找的感謝你的解釋 – TypingTurtle