Libgdx textureAtlas动画在应用程序开始时触发

Libgdx textureAtlas动画在应用程序开始时触发,libgdx,texture-atlas,Libgdx,Texture Atlas,我的问题是,textureAtlas动画在应用程序启动时运行。我只希望在inputListner获得正确输入时触发它,而不是在启动时。目前它两次都被触发。你错过了什么?这是我的密码 //show method animationTime=0; atlas= new TextureAtlas("Atlas/animation.atlas"); regions= new Array<TextureAtlas.AtlasRegion>(Atlas.getRegions());

我的问题是,textureAtlas动画在应用程序启动时运行。我只希望在inputListner获得正确输入时触发它,而不是在启动时。目前它两次都被触发。你错过了什么?这是我的密码

 //show method 
animationTime=0;

 atlas= new TextureAtlas("Atlas/animation.atlas");
 regions= new Array<TextureAtlas.AtlasRegion>(Atlas.getRegions());
 animation= new Animation(1f/31f,regions);

//input listener:
animationTime = 0;
animation.setPlayMode(Animation.PlayMode.NORMAL);

//render method:
animationTime+=delta;    
decal.setTextureRegion(animation.getKeyFrame(animationTime));
//show方法
animationTime=0;
atlas=新的TextureAtlas(“atlas/animation.atlas”);
regions=新数组(Atlas.getRegions());
动画=新动画(1f/31f,区域);
//输入侦听器:
animationTime=0;
设置播放模式(animation.PlayMode.NORMAL);
//渲染方法:
动画时间+=增量;
seap.setTextureRegion(animation.getKeyFrame(animationTime));

如果希望动画由输入触发,则不应一直调用此行:

animationTime+=delta;    
导致这行代码使动画移动的原因是:

// render
if(animationTrigger) {
animationTime+=delta; 
}

// input listener
if(input) {
animationTrigger = true;
}
当标志为TRUE时,将触发动画

如果有任何问题,请留言


祝您好运

在应用程序启动时触发动画的原因是,在启动动画时,如果您希望它在其他时间点启动,或者只是重置它,则始终可以更改变量或直接传递浮点:

if(animationContinue) {
    animationTime+=delta; 
}
if(animationReset) {
    animationTime = 0; 
}

// Applying animation using the animation time variable.
decal.setTextureRegion(animation.getKeyFrame(animationTime));

// Will just return the first frame of the animation
decal.setTextureRegion(animation.getKeyFrame(0));
// Note that 1 won't necessarily return the next animation frame
正如您所看到的,动画时间是完全动态的,并且与动画本身分离

如果您计划对多个游戏对象(如鸟类飞行)使用一个动画,请确保为每个游戏对象动画时间添加一些随机偏移,这将使每个对象更独特、更可信。
否则,它们都将具有相同的精确动画计时和序列,从而产生真正的人造外观

请注意,动画时间变量是动态的,与动画本身完全分离,因此,您可以执行以下操作:

// For each bird.
bird.setTextureRegion(animation.getKeyFrame(animationTime+randomOffset));
我会很高兴地感谢你的支持,我在这里有点努力:)