0

PlayN を使用して、正方形のレイヤーの画像を変更しようとしています。画像を変更するフリップ効果を作成しようとしています。これは、レイヤーの原点を画像の中心に設定し、幅を縮小して、幅がほぼゼロのときに画像を変更し (画像が表示されない)、幅を元のサイズに戻すことによって行っています。

このトランジションを再生するために、カスタム タイマー タスクを使用しています。

ここで、1 つの質問と 1 つの問題があります。

質問は、私がやろうとしていることを達成するためのより良い方法があるということです

問題は、画像が完全に反転することですが、画像をもう一度クリックして元に戻すと、次のエラーが表示されます

[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)
4

1 に答える 1

0

メインスレッド(update()/paint()メソッドを呼び出すスレッド)でのみ描画メソッドを呼び出すことができます-別のスレッドで実行されると想定するタイマータスクを作成した場合、glはありません環境。タイマー タスクを使用しないか、タイマー タスクを使用しますが、イベントをスローし、メインの update()/paint() メソッドでイベントをリッスンして操作を実行します。

于 2013-04-03T10:36:46.407 に答える