【问题标题】:Initial delay in animation while using Universal Tween Engine in Libgdx在 Libgdx 中使用通用补间引擎时动画的初始延迟
【发布时间】:2015-03-19 10:51:56
【问题描述】:

我正在使用 LibGdx 中的通用补间库将 Sprite 从屏幕顶部移动到屏幕中间,如下面的代码中所述。我可以看到动画开始之前有明显的延迟。我什至将延迟设置为 0f 仍然无法解决。请帮忙。

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

【问题讨论】:

  • 可能与您初始化startTime 的方式有关(未显示)。
  • 我把它变成了这样 delta = (TimeUtils.millis()-startTime + 500)/1000 ;现在好了

标签: android libgdx tween


【解决方案1】:

试试看:

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

【讨论】:

  • 如果是这样,动画变得非常非常慢。我仍然可以使用 delta = (TimeUtils.millis()-startTime + 500)/1000
猜你喜欢
  • 1970-01-01
  • 2014-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多