2017-04-08 93 views
0

首先,感謝您閱讀本文,歡迎任何幫助。 我的演員在舞臺上正確渲染,但與Actions.moveTo,它留下了一條線索?我只是不明白。這就像紋理在每個新幀上的新位置渲染一樣。Libgdx - 對演員的行動

enter image description here

這是我爲我的類代碼:

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)); 
    } 
} 

而且ScreenGame渲染方法:

@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(); 
} 

回答

1

你添加新的SlidingCap每一幀,此代碼

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

嘗試在創建或顯示方法而不是每個框架中添加SlidingCap一次

+0

我簡化了需要這篇文章的代碼,但是......我認爲你是對的。讓我試試這個。謝謝。 – Vini

+0

就是這樣。不敢相信我沒有看到它。非常感謝。 – Vini