【发布时间】:2015-04-06 08:23:19
【问题描述】:
所以我对 LibGDX 有疑问,我正在创建一个有尖峰的游戏。
我创建了一个单独的类,其中包含一个每五秒运行一次的 run 方法。
我想从另一个类运行一个方法并在屏幕上创建一个新的尖峰。
因为我有一个新帐户,所以我无法发布图片。
但这是用于定时器的初始化:
@Override
public void create ()
{
timer = new Timer();
timer.schedule(new SpikeHandler(), 0, 5000);
}
这是创建一个尖峰方法:
public static void createNewSpike(int x, int y)
{
sb.draw(spike.spikeLeft, x, y);
}
这是每五秒/计时器循环发生的情况:
public class SpikeHandler extends TimerTask
{
public Random rand = new Random();
@Override
public void run()
{
if(GameStateManager.getState() == GameState.Playing && GameScreen.hasCountdowned == true)
{
GameScreen.sb.begin();
GameScreen.createNewSpike(rand.nextInt(150), rand.nextInt(150));
GameScreen.sb.end();
}
}
}
这是我收到的错误消息:
Exception in thread "Timer-0" java.lang.RuntimeException: No OpenGL context found in the current thread.
at org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124)
at org.lwjgl.opengl.GL11.glDepthMask(GL11.java:1157)
at com.badlogic.gdx.backends.lwjgl.LwjglGL20.glDepthMask(LwjglGL20.java:256)
at com.badlogic.gdx.graphics.g2d.SpriteBatch.begin(SpriteBatch.java:163)
at com.fam.dodge.SpikeHandler.run(SpikeHandler.java:17)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
【问题讨论】: