我使用以下代码渲染在另一个类中创建的精灵:
batch = new SpriteBatch();
textureAtlas = new TextureAtlas(Gdx.files.internal("bird.atlas"));
animation = new Animation(1/6f, textureAtlas.getRegions());
我的问题是它没有运行不同的图像,而是我得到一个静态图像。如果我将动画中的速度更改为1 / 10000f,它将翻转图像像crasy。
这是bird类中render方法中的代码,然后我运行renderer.render();来自游戏课。
batch.begin();
elapsedTime = Gdx.graphics.getDeltaTime();
batch.draw(animation.getKeyFrame(elapsedTime, true), 50, 50);
batch.end();
这将显示我的鸟在我的平铺地图的顶部,但然后鸟不会拍他的翅膀:(非常难过。
libgdx版本:1.5.5
任何想法,我在哪里误入歧途?
答案 0 :(得分:2)
动画需要经过的时间,而不是增量时间。您的elapsedTime
变量仅存储deltatime。
将elapsedTime = Gdx.graphics.getDeltaTime();
更改为elapsedTime += Gdx.graphics.getDeltaTime();
。