我最近用这个QuizDialog界面创建了一个libgdx游戏 我从这里的不同教程中添加了CountDownTimer,但是当我执行游戏时,它会告诉
it "assigns the requested contact to @contact" do
params = {user_id: user.id, id: @contact.id}
get :show, params
expect(:contact).to be(@contact)
end
到目前为止,这是我的代码,
Exception in thread "LWJGL Application" java.lang.RuntimeException: Stub!
at android.os.CountDownTimer.<init>(CountDownTimer.java:4)
at com.boontaran.games.SICT.LevelQuizDialog$2$1.<init>(LevelQuizDialog.java:184)
at com.boontaran.games.SICT.LevelQuizDialog$2.clicked(LevelQuizDialog.java:184)
at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:89)
at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:57)
at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:346)
at com.boontaran.games.StageGame.touchUp(StageGame.java:300)
at com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:325)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:199)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
}
答案 0 :(得分:1)
你不需要任何花哨的东西。您可以从LibGDX中的任何位置访问帧时间,它称为delta或Gdx.graphics.getRawDeltaTime()
,因为Gdx.graphics.getDeltaTime()
提供了平滑版本。所以你需要做的就是让一个计数器增加这个增量和一个固定值,比如10秒。
由于你可能想倒计时我们应该减少计数器:
float time, counter = 10f;
public void update(float delta)
{
counter -= Gdx.graphics.getRawDeltaTime();
//if you have delta passed as a overload you can do
counter -= delta; //This is smoothed but should not matter for a quiz game
if (counter <= 3)
{
//Play annoying sound to make you stress even more
}
if (counter <= 0)
{
//Time is up!
//You can just reset the counter by setting it equal to time again.
//But there will almost always be left over (counter will be less then 0)
//So if this is important (probably not for a quiz game)
counter = time + -counter; //Add the time this round took too long.
}
}
这就是它的全部。如果你想以秒为单位绘制时间,你应该绕counter
向上。
答案 1 :(得分:0)
线程“LWJGL Application”中的异常java.lang.RuntimeException:Stub
您正在使用这两种导入:
import java.util.Timer;
import android.os.CountDownTimer;
还为倒数计时器创建一个变量(尽管这是我的首选风格)。
android.os.CountDownTimer countDownTimer = new android.os.CountDownTimer(4000, 4000) {
答案 2 :(得分:0)
如果我没错,你就是在桌面上运行你的游戏;您不能在桌面版本中使用Android类。它们只包含类的存根实现。
import android.os.CountDownTimer;
你制作的游戏不是应用程序。阅读有关游戏编程和游戏循环的更多信息。 This answer是一个非常简单的定时器实现的例子。