1
有一個運行Libgdx的Android應用程序,其中有許多精靈都在浮動。目前,我根據它們屬於哪一組來區別顏色,例如「紅色」,「綠色」,「藍色」等等。但是,我認爲我更喜歡只將部分精靈顏色而不是整個顏色。Libgdx - 動態只着色一部分精靈
目前我使用:
batch.begin();
batch.setColor(color1);
batch.draw(group1);
batch.setColor(color2);
batch.draw(group2);
etc..
batch.end();
batch.setColor(color)
用於着色的批次和應用,爲整個精靈。當該組完成後,我改變顏色並移至下一組。完成組合後,我重置批次顏色。
是否有着色器/混合器的方式,而不是着色部分的精靈?例如,我的紋理中任何顏色爲的紅色都應被視爲「動態區域」,然後可以將其着色爲我動態設置的任何內容。
我不能使用透明度,因爲紋理的邊緣是透明的,需要保持這種混合方式。
非常感謝
嗨拉拉,謝謝你回到我身邊。你的方法讓你感到困惑。目前,textureregion是我想要顯示的精靈的地圖集的返回部分,假設字符。我將如何去着色這個返回的精靈的一部分?你是否爲該角色的每個部分創建了不同的紋理區域? – Jammo 2015-03-31 09:06:03
是的。你應該在你的地圖集中添加另一個紋理,在紋理上只顯示你想改變顏色的那部分角色。然後創建'MySprite',其中'region1'是字符紋理,'region2'是第二個紋理。不要忘記在渲染之前設置'extraColor'值。 – Rara 2015-03-31 16:20:16
雖然這種方法似乎有相當多的開銷?我有一個已經在8個方向旋轉的精靈,每個方向都有4幀動畫。所以我需要在地圖集中的每一個紋理區域圖像?只是看起來像很多管理員的噩夢,特別是如果主角圖形更新。使用的精靈具有透明度 - 是否無法定位精靈的特定顏色,例如洋紅色,並且只能動態地對該部分進行着色?就像綠色/藍色屏幕如何與電視/電影一起工作 – Jammo 2015-04-02 10:52:12