2015-03-19 17 views
0

我正在使用LibGdx中的通用補間庫將Sprite從頂部移動到屏幕中部,如下面的代碼所述。我可以看到在動畫開始之前存在顯着的延遲。我甚至將延遲設置爲0,但仍然無法解決。請協助。在Libgdx中使用通用補間引擎時的動畫初始延遲

sprite1 = new Sprite(LEVEL_SELECTION_BOARD); 

    // Top to bottom 

    sprite1.setPosition((SCREEN_WIDTH/2) - LEVEL_SELECTION_BOARD .getWidth()/2 ,SCREEN_HEIGHT); 

    Tween.to(sprite1,SpriteTween.POSITION_Y,20f) 
    .delay(0f) 
    .target(SCREEN_HEIGHT /2 - LEVEL_SELECTION_BOARD.getHeight()/2) 
    .ease(TweenEquations.easeOutBack) 
    .setCallback(callbackEnd) 
    .setCallbackTriggers(TweenCallback.END) 
    .start(tweenManagerLevelBoard); 


@Override 
public void render(SpriteBatch sb) { 
    //System.out.println("StartScreen - Render "); 
    batch=sb; 
    sb.setProjectionMatrix(camera.combined); 
    sb.begin(); 
    sb.draw(BACKGROUND,0,0,SCREEN_WIDTH,SCREEN_HEIGHT);  
    delta = (TimeUtils.millis()-startTime)/1000; // **get time delta **// 
    tweenManagerLevelBoard.update(delta); //** update sprite1 **// 
    sprite1.draw(batch); 
    sb.end(); 
} 
+0

也許有你如何初始化做'startTime'(未顯示)。 – Tenfour04 2015-03-19 12:55:37

+0

我使它像這樣delta =(TimeUtils.millis() - startTime + 500)/ 1000;如果是這樣,動畫變得非常緩慢,現在它是好的 – iappmaker 2015-03-19 13:47:44

回答

1

試一下:

tweenManagerLevelBoard.update(Gdx.graphics.getDeltaTime()); 
+0

。我仍然可以用delta =(TimeUtils.millis() - startTime + 500)/ 1000 – iappmaker 2015-03-21 06:25:11