2017-06-09 5 views
0

有効なTextureAtlasのから有効なアニメーションがあり、diceというフレームがいくつか含まれています。私が問題を抱えているのはそれをレンダリングすることです。以下のコードを使用してアニメーションをレンダリングしますが、最初のフレームのみが表示されます。私がtimeElapsedにデルタタイムを使用する代わりに毎回1つを追加するように設定すると、それはアニメーション化されますが、本当に速く、構築で定義された1秒あたりのフレーム数は無視されます。誰でもアイデアはありますか?アニメーションが再生されない

int elapsedTime; 

@Override 
public void create() { 
    batch = new SpriteBatch(); 
    dice = new TextureAtlas("textures/dice/dice.atlas"); 
    diceAnimation = new Animation<TextureRegion>(0.033f, dice.findRegions("one"), PlayMode.LOOP); 
} 

// ... 

@Override 
public void render() { 
    elapsedTime += Gdx.graphics.getDeltaTime(); 

    Gdx.gl.glClearColor(1, 0, 0, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

    batch.begin(); 
    batch.draw(diceAnimation.getKeyFrame(elapsedTime, true), 100, 100); 
    batch.end(); 
} 

答えて

1

データ型int elapsedTimeは、intではなくfloatにする必要があります。


OFF_TOPIC

PlayMode.LOOPあなたは

batch.draw(diceAnimation.getKeyFrame(elapsedTime), 100, 100); 
を使用できるようにdiceAnimationの PlayModeです
関連する問題