2016-04-13 5 views
0

LWJGLでゲームを作っています(私は思っています2)、私はタイルグリッドで作業していました。私のテクスチャをバインドしているときに例外が発生し、ゲームが開かない(明らかに)ので、私はこれを1時間解決しようとしていましたが、動作させることができません。ここで私のコードは、誰かが私のためにそれを修正することはできますか?テクスチャを適用するときのLWJGLの例外(私は理由はわかりません)

FILEPATH:filepath

コード:(メインクラス) http://pastebin.com/GvxEyGRQ

コード:(GridHandlerクラス) http://pastebin.com/2fcwLXU5

コード:(TileTypeクラス - それが列挙である) http://pastebin.com/Dk0v3BRc

コード:(タイルクラス) http://pastebin.com/TNATAjJW

コード:(レンダラークラス) http://pastebin.com/MBhReiAb

私のエラー:java.lang.RuntimeException:によって引き起こさスレッドで
例外 "メイン" java.lang.ExceptionInInitializerError 現在のスレッドが見つかりませんOpenGLのコンテキスト。 でorg.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124)org.lwjgl.opengl.GL11.glGetError(GL11.java:1299)で org.newdawn.slick.opengl.renderer.ImmediateModeOGLRendererで 。 glGetError org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:200)でorg.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:249)で(ImmediateModeOGLRenderer.java:384) で(TextureLoader.java:24) at Functions.renderer.loadTexture(renderer.java: 58) at Functions.renderer.quickLoad(renderer.java:67) at W indow.Tile。(Tile.java:20) Window.GridHandlerで。(GridHandler.java:30)Window.Mainで 。(Main.java:31)事前に

おかげで、 ブライアン。

+0

OpenGLのコンテキストと関係があります。コマンドを実行しているスレッドは、それを所有していません。残念ながら、私はあなたを助けるためにlwjglを知らないが、それはあなたが調べなければならない方向にすべきである。 – elect

+0

さて、悪いことを心に留めておく。ありがとう – Bryan

答えて

0

静的なGridHandlerグリッド=新しいGridHandler(マップ)がメインメソッドの前にインスタンス化されている可能性があります。

メインメソッドの先頭にコンテキストを作成しますが、GridHandlerはmain()の前にインスタンス化されているため、コンテキストがまだ作成されておらず、TileHandlerのレンダラーからquickloadメソッドを使用してテクスチャをロードしようとしますclass - map [i] [j] = new Tile(i * 64、j * 64、64、64、TileType.stone);

glコマンドを実行するには、まずコンテキストが必要です(Display.create()は現在のコンテキストを作成します)。 TextureLoaderの機能は、GPUにテクスチャをロードすることです(コマンドを実行すること)。

+0

これはうまくいきました。「現在のスレッドでOpenGLコンテキストが見つかりませんでしたが、このエラーを修正するにはどうすればよいですか? javacは投稿しましたが、とにかくありがとう – Bryan

関連する問題