2014-05-13 59 views
0

紋理我出口從攪拌機的模型,但我想某些情況下使用不同的紋理libgdx改變在預先紋理模型

 if (x % 2 == 0) { 
      shipInstance.materials.clear(); 
      shipInstance.materials.add(new Material()); 
      shipInstance.materials.get(0).set(new TextureAttribute(TextureAttribute.Diffuse, enemyTexture)); 

遺憾的是不工作!

以類似的方式,我希望能夠改變的事情一樣光澤和平滑 (我猜你可以改變這樣的事情,使用的是默認着色器?)

我也(後)嘗試這個...

Material mat = shipInstance.materials.get(m); 
for (Iterator<Attribute> ai = mat.iterator(); ai.hasNext();){ 
    Attribute att=ai.next(); 
    if (att.type==TextureAttribute.Diffuse) { 
     ((TextureAttribute)att).textureDescription.set(enemyTexture,TextureFilter.Linear,TextureFilter.Linear,TextureWrap.ClampToEdge,TextureWrap.ClampToEdge); 
    } 
} 

除其他事項外...

回答

1

哎呀!

for(int m=0;m<shipInstance.materials.size;m++) { 
    Material mat = shipInstance.materials.get(m); 
    for (Iterator<Attribute> ai = mat.iterator(); ai.hasNext();){ 
     Attribute att=ai.next();       
     if (att.type==TextureAttribute.Diffuse) { 
      ((TextureAttribute)att).textureDescription.set(enemyTexture,TextureFilter.Linear,TextureFilter.Linear,TextureWrap.ClampToEdge,TextureWrap.ClampToEdge); 
     } 
    } 
} 

我的錯誤是從materials.size中減去1! (模型中的最後一個材料碰巧是最明顯的材料,在很多情況下,當我嘗試不同的東西時可能會工作(接受最後一個材料)DoH !!!