2013-04-01 25 views
0

使用PlayN,我試圖改變正方形圖層上的圖像。我正在嘗試創建一個翻轉效果來更改圖像。這是通過將圖層的原點設置爲圖像的中心,然後在寬度幾乎爲零(圖像不可見)時縮小寬度並更改圖像,然後將寬度增大至原始大小來完成的。PlayN中沒有找到OpenGL上下文錯誤

我正在使用自定義Timer任務來播放此轉換。

現在我有一個問題和一個問題。

問題是有沒有更好的方式來acheive什麼,我試圖做

和問題是圖像翻轉完美的,但是當我點擊圖片再次將其翻轉回我得到以下錯誤

[java] Exception in thread "Timer-1" java.lang.RuntimeException: No OpenGL context found in the current thread. 
[java] at org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124) 
[java] at org.lwjgl.opengl.GL11.glDeleteTextures(GL11.java:721) 
[java] at playn.java.JavaGL20.glDeleteTextures(JavaGL20.java:1050) 
[java] at playn.core.gl.GL20Context.destroyTexture(GL20Context.java:164) 
[java] at playn.core.gl.ImageGL.clearTexture(ImageGL.java:60) 
[java] at playn.core.gl.ImageGL.release(ImageGL.java:87) 
[java] at playn.core.gl.ImageLayerGL.setImage(ImageLayerGL.java:74) 
[java] at playn_poc.core.util.RotationTimerTask.run(RotationTimerTask.java:51) 
[java] at java.util.TimerThread.mainLoop(Timer.java:512) 
[java] at java.util.TimerThread.run(Timer.java:462) 

回答

0

,你只能叫得出在主線程(paint()方法中的方法調用update()線程/)方法 - 如果你創建了一個計時器任務,我以爲是在運行不同的線程,那麼它將不會有gl上下文。不要使用計時器任務,或使用計時器任務,但要拋出事件,並在主update()/ paint()方法中偵聽事件以執行操作。

+0

我已經刪除了定時器任務,現在使用更新方法來做動畫,它的工作原理。謝謝。 –

相關問題