2017-01-09 4 views
0

Warum ist dasWarum macht Sprite.draw mein Sprite nicht, aber Batch.render und SpriteBatch.render?

player.sprite.draw(batch); 

nicht mein Sprite nicht machen, aber

batch.draw(player.sprite.getTexture(), 0,0); 

tut?

Meine komplette Render-Methode:

public void render(float deltaTime) { 
    if (assets.assetManager.update()) { 
     loading = false; 
     player = new Cat(assets.assetManager.get("textures/Cat.png", Texture.class)); 
     player.sprite.setPosition(0,0); 
    } 
    else 
    { 
     timeLoading += deltaTime; 
     System.out.println("Progress: " + assets.assetManager.getProgress() * 100); 
    } 

    if (!loading) 
    { 
     rayHandler.updateAndRender(); 
     Gdx.gl.glClearColor(0.37f, 0.73f, 0.84f, 1f); 
     Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);       Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     processUserInput(); 
     player.update(deltaTime); 

     orthogonalTiledMapRenderer.setView(orthographicCamera); 
     orthogonalTiledMapRenderer.render(); 

     batch.begin(); 
     if (debug) 
      renderDebugInfo(); 
     player.sprite.draw(batch); 
     batch.draw(player.sprite.getTexture(), 0,0); 
     batch.end(); 

     batch.setProjectionMatrix(orthographicCamera.projection); 
     rayHandler.setCombinedMatrix(orthographicCamera); 
     orthographicCamera.update(); 

     world.step(1, 4, 4); 
    } 
} 

Antwort

-1

ich nicht den Constructor von Sprite benutzt hatte, und stellen Sie die Textur mit Sprite.setTexture, aber das hat irgendwie nicht richtig, die Sprite zu initialisieren. Jetzt mit dem Konstruktor kann ich es rendern

+2

Die Dokumentation für den leeren Konstruktor für Sprite besagt, dass eine Region festgelegt werden muss, bevor es gezeichnet werden kann. Wenn Sie nur eine Textur festlegen, wird auch keine Region festgelegt. – Tenfour04

Verwandte Themen