【问题标题】:Libgdx - Action on actorLibgdx - 对演员的行动
【发布时间】:2017-04-09 00:51:21
【问题描述】:

首先,感谢您阅读这篇文章,欢迎任何帮助。 我的演员在舞台上正确渲染,但使用 Actions.moveTo,它会留下痕迹?我只是不明白。就像纹理在每个新帧上的新位置渲染一样。

这是我班级的代码:

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

【问题讨论】:

    标签: java libgdx


    【解决方案1】:

    您正在使用此代码在每一帧添加一个新的 SlidingCap

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

    尝试在 Create 或 show 方法中添加一次 SlidingCap 而不是每一帧

    【讨论】:

    • 我根据这篇文章的需要简化了代码,但是......我认为你是对的。让我试试这个。谢谢。
    • 就是这样。不敢相信我没看到。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多