我有一个libgdx项目,我希望将其部署到桌面和Web上。
我在项目中使用了com.badlogic.gdx.utils.Timer
,但是如果应用程序散焦,则会暂停。所以我转而只是java.util.Timer
,无论如何都会保持滴答作响。
但是,这会在gwt下产生编译错误。
所以我正在寻找适用于两者的Timer解决方案的指针,同时也让应用程序在后台进行计数。
思想;
com.badlogic.gdx.utils.Timer
吗?java.util.Timer
,但不知何故告诉gwt编译使用不同的类?谢谢,
答案 0 :(得分:0)
您有两个选择:
我建议您使用com.badlogic.gdx.utils.Timer
,但是如果您的应用会散焦,则会暂停,因为您的任务是由TimerThread
安排的,由pause()
和resume()
由LibGDX框架本身管理{1}}生命周期方法。您需要覆盖ApplicationListener
的暂停方法并自行启动计时器。
@Override
public void pause() {
Timer.instance().start();
}
java.util.Timer
抛出gwt编译错误,GWT可能不支持。
答案 1 :(得分:0)
我找到了使用gwt.xml配置文件的解决方案。 使用"超级源"您可以指定一个子包,其中的内容将用于代替其他地方的java文件。 你必须确保子包完成路径匹配,然后它才能完美。
即,这是在com.lostagain.jamgdx
的gwt.xml中<!-- This overrides the default timer class in JamGdx-core with a gwt specific implementation -->
<!-- This is because the core method uses javas Timer out of preferance for its behavour, which gwt does not support. -->
<!-- The gwt class uses its own timer method instead. -->
<super-source path="gwtonly"/>
我将我的gwt特定定时器替换为;
com.lostagain.jamgdx.gwtonly.com.lostagain.jamgdx.implementations
在gwt项目中。
(因为我的正常计时器在Core中为com.lostagain.jamgdx.implementations