我在使用补间引擎补间 Actor 时遇到了一个几乎不引人注意但令人讨厌的随机故障。 Actor 只是一个有形象的群体。补间只是从屏幕右侧到左侧的线性重复。
FPS 总是显示 60。
有什么想法吗?
这是代码:
public class BackgroundScreen extends AbstractScreen {
public BackgroundScreen() {
stage = new Stage();
stage.setViewport(Properties.VIRTUAL_WIDTH, Properties.VIRTUAL_HEIGHT, false);
createRock();
}
private void createRock() {
rock = new GameElement(atlas.createSprite("obj-stone"));
rock.setX(Properties.VIRTUAL_WIDTH);
rock.setY(100);
float duration=5f;
Tween.to(rock, ActorAccessor.POSITION_XY, duration/2).ease(Linear.INOUT).target(-rock.getWidth(), rock.getY()).repeat(Tween.INFINITY, 0).start(Resources.tweenManager);
stage.addActor(rock);
}
@Override
public void render(float delta) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
Resources.tweenManager.update(delta);
stage.act(delta);
stage.draw();
}
}
更新
这是带有效果的 YouTube 视频的链接。两个注意事项:
http://www.youtube.com/watch?v=0pVJbGFciyo
a) 录制视频时,您可以看到故障更加明显。 b) 我在我的 Galaxy Nexus 上看不到任何故障。 c) 我只用 libgdx Action 做了同样的补间,故障是一样的 d) 不知何故与我的电脑有关。
最佳答案
您应该使用补间方程式。
毫无疑问,我会说 Linear.INOUT
是导致 Sprite 出现故障的原因。也许再见只需尝试使用 Linear.IN
运行它就可以了。
关于java - 补间引擎和 libgdx 的故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17978749/