我正在開發基於2D的遊戲。我已將事物分解爲諸如skybackground,landbackground,城鎮,UI等組件,並且每個組件都處理其繪圖。在調用任何繪製調用之前,使用默認值I spritebatch.Begin()
,以便在1批次中繪製所有內容。什麼是平鋪紋理的更經濟的方法?
爲了繪製地塊,我反覆在整個地區繪製一個方形的土地紋理,直到我填滿它。然而,有一個名爲linear wrap
的spriteBatch
模式就是這樣做的。不利的一面是,我將不得不改變我的設計,將我的全球產品spritebatch.begin()
多次拆分爲每個組件。
所以我的問題是什麼更好/更經濟,手動平鋪紋理或拆分子組件之間的begin()
和end()
?
還有其他問題可能需要我拆分一個spriteBatch.Begin()
,那麼多1個額外的spriteBatch.Begin()
有多重要?還是10個?還是100多?我想知道在什麼規模下我應該開始擔心增加更多begins()
。
3次讀過這個問題,我不明白超過1個spritebatch可以提供多大的幫助。在xna中,您應該繪製從您的繪圖中調用的繪圖或方法的所有內容。這導致你總是可以將批處理作爲引用發送到需要的地方,所以你爲什麼想要多於一個。有些代碼可以幫助我們獲得一種方法來將開始/精靈的數量減少到一個。 – Olle89