将纹理放置在游戏屏幕上特定的时间间隔

时间:2013-02-25 12:51:05

标签: libgdx

我正在Libgdx制作游戏,我希望在特定的时间间隔内显示和隐藏纹理并重复此过程。我可以使用Timer类吗? 请给我一些例子。

3 个答案:

答案 0 :(得分:4)

我不确定你在这里做什么。你可以在渲染循环中有一个标志

Texture texture;
long lastFlip = 0;
long flipTime = 1000;
boolean display = false;

//..In your rendering loop
if(lastFlip+flipTime > System.currentTimeMillis()){
     display = !display;
     lastFlip = System.currentTimeMillis();
}
if(display){
      spriteBatch.draw(texture,0,0);
}

如果你想在scene2d中使用内置动作系统,请参阅以下教程。 Tutorial。博客非常好,让您了解如何使用很多scene2d功能。由于对scene2d的更改,可能会有一些数据,但它会为您提供所需的想法。

答案 1 :(得分:0)

我确信您现在已经获得了解决方案,但您不应使用系统特定时间,而应使用已在render方法中使用的Gdx图形增量时间。然后将其与您想要显示纹理的时间进行比较。

答案 2 :(得分:0)

您绝对应该使用libGDX包装函数来读取时间,以避免在不同平台上最终不兼容。但是自己的代码可以非常简单:

if (TimeUtils.millis()%(SHOW_TIME+HIDE_TIME) < SHOW_TIME){
 // render it
}

其中SHOW_TIME是您希望纹理显示的毫秒数,HIDE_TIME是您希望隐藏纹理的毫秒数。不需要额外的变量,使其比这更复杂。