2017-04-08 7 views
0

Zuerst, danke für das Lesen dieses Beitrags, jede Hilfe ist willkommen. Mein Darsteller wird korrekt auf der Bühne gerendert, aber mit Actions.moveTo hinterlässt er eine Spur? Ich verstehe es einfach nicht. Es ist so, als würde die Textur an jedem neuen Frame an einer neuen Position gerendert.Libgdx - Aktion auf Schauspieler

enter image description here

Hier ist mein Code für meine Klasse:

public class SlidingCap extends Actor { 
    private Texture capOver; 
    private float xPosition; 
    private float yPosition; 

    public SlidingCap(float x, float y) { 
     this.xPosition = x; 
     this.yPosition = y; 
     this.capOver = new Texture(Gdx.files.internal("images/cappingPlate.png")); 
     setBounds(x, y, 288, 180); 
    } 

    @Override 
    public void act(float delta) { 
     super.act(delta); 
    } 

    @Override 
    public void draw(Batch batch, float parentAlpha) { 
     batch.draw(capOver, getX(), getY(), 288, 180); 
     this.addAction(Actions.moveTo(xPosition+10, yPosition+10, 5f)); 
    } 
} 

Und die ScreenGame Render-Methode:

@Override 
public void render(float delta) { 
    gameStage.act(delta); 
    Gdx.gl.glClearColor(0, 0, 0, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
    this.capMiniGame = new SlidingCap(100, 100);     
    this.gameStage.addActor(capMiniGame); 
    gameStage.draw(); 
} 

Antwort

1

Sie einen neuen SlidingCap mit diesem Code für jeden Rahmen das Hinzufügen

this.capMiniGame = new SlidingCap(100, 100);     
this.gameStage.addActor(capMiniGame); 

Versuchen Sie die SlidingCap einmal in der Create oder show-Methode anstelle von jedem Rahmen

+0

Ich vereinfachte den Code für die Notwendigkeit dieser Post, aber ... Ich denke, Sie haben Recht. Lass mich das versuchen. Vielen Dank. – Vini

+0

Das war es. Ich kann nicht glauben, dass ich es nicht gesehen habe. Danke vielmals. – Vini

Verwandte Themen