0

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

4

3 回答 3

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 中的内置动作系统,请参阅以下教程。 教程。该博客非常好,可以让您很好地了解如何使用很多 scene2d 功能。由于对 scene2d 的更改,它可能会有点数据不足,但它会给你你需要的想法。

于 2013-02-25T14:20:23.730 回答
0

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

于 2013-10-14T10:22:19.100 回答
0

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

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

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

于 2014-03-04T12:25:28.300 回答