所以我有一個LibGDX的問題,我正在創建一個有尖峯的遊戲。OpenGL上下文(libgdx)
我創建了一個單獨的類,其中包含一個每5秒運行一次的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)
如果使用postRunnable,可能會彈出另一個錯誤,因爲沒有活動的批處理。無論如何,更大的問題是,你只是試圖繪製它,而不是實際創造一個新的高峯。 – Bogoth 2016-01-09 22:17:24