我正在 Libgdx 中制作游戏,我想在其中显示和隐藏特定时间间隔的纹理并重复此过程。我可以为此使用 Timer 类吗?也请给我一些例子。
问问题
581 次
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 回答