2012-06-30 1 views
6

Ho usato texture draw per 2 immagini, ma l'immagine di sfondo diventa nera. L'immagine sorgente è un png ed è trasparente. Come lo risolvo?libgdx texture image render trasparente

Come si esegue il rendering dell'immagine originale con trasparenza?

risposta

1

Prova spritebatch.enableBlending() se lo hai disattivato prima. Dovrebbe essere abilitato di default però.

29

Prova questo:

  spriteBatch.begin(); 
      //background 
      seaTexture = new Texture(px); 
      Color c = spriteBatch.getColor(); 
      spriteBatch.setColor(c.r, c.g, c.b, 1f); //set alpha to 1 
      spriteBatch.draw(seaTexture, 0, 0, 480, 320); 
      //foreground 
      c = spriteBatch.getColor(); 
      spriteBatch.setColor(c.r, c.g, c.b, .3f);//set alpha to 0.3 
      spriteBatch.draw(blockTexture, 50, 100, 120, 120); 

      spriteBatch.end(); 
+0

avevo bisogno di cancellare lo schermo prima con questa linea 'Gdx.gl.glClear (GL20.GL_COLOR_BUFFER_BIT);' 'prima spriteBatch.begin()' per vedere gli effetti alfa per [istruzioni qui] (https://github.com/libgdx/libgdx/wiki/Spritebatch,-Textureregions,-and-Sites) – rockhammer

+1

Ovviamente, è necessario farlo. Ho appena mostrato la parte più importante del codice. – Nolesh