2016-04-13 8 views
0

Also mache ich ein Spiel in LWJGL (2 glaube ich) und ich habe an einem Kachelgitter gearbeitet. aber wenn ich meine Texturen verbinde, bekomme ich eine Ausnahme und das Spiel wird sich nicht öffnen (offensichtlich), also habe ich versucht, das für eine Stunde zu lösen, aber ich kann es nicht zur Arbeit bringen. Hier ist mein Code, kann jemand es für mich korrigieren?LWJGL Ausnahme (Ich weiß nicht warum) beim Anwenden von Texturen

FILEPATH: filepath

Code: (Hauptklasse) http://pastebin.com/GvxEyGRQ

Code: (GridHandler Klasse) http://pastebin.com/2fcwLXU5

Code: (TileType Klasse - es ist eine Enumeration) http://pastebin.com/Dk0v3BRc

code: (Fliesenklasse) http://pastebin.com/TNATAjJW

Code: (Renderer Klasse) http://pastebin.com/MBhReiAb

mein Fehler:
Exception in thread "main" java.lang.ExceptionInInitializerError Verursacht durch: java.lang.RuntimeException: Nein OpenGL-Kontext in dem aktuellen Thread gefunden . bei org.lwjgl.opengl.GLContext.getCapabilities (GLContext.java:124) bei org.lwjgl.opengl.GL11.glGetError (GL11.java:1299) bei org.newdawn.slick.opengl.renderer.ImmediateModeOGLRenderer. glGetError (ImmediateModeOGLRenderer.java:384) bei org.newdawn.slick.opengl.InternalTextureLoader.getTexture (InternalTextureLoader.java:249) bei org.newdawn.slick.opengl.InternalTextureLoader.getTexture (InternalTextureLoader.java:200) bei org.newdawn.slick.opengl.TextureLoader.getTexture (TextureLoader.java:64) bei org.newdawn.slick.opengl.TextureLoader.getTexture (TextureLoader.java:24) bei Functions.renderer.loadTexture (renderer.java: 58) bei Functions.renderer.quickLoad (renderer.java:67) bei W indow.Tile. (Tile.java:20) bei Window.GridHandler. (GridHandler.java:30) bei Window.Main. (Main.java:31)

Vielen Dank im Voraus, Bryan.

+0

Es hat mit dem OpenGL-Kontext zu tun. Der Thread, der die Befehle ausführt, besitzt ihn nicht. Leider weiß ich lwjgl nicht, um Ihnen zu helfen, aber das sollte die Richtung sein, in die Sie schauen sollten. – elect

+0

Okay, Ill behalte das im Hinterkopf. Danke – Bryan

Antwort

0

Ich denke, es könnte sein, weil Ihre statische GridHandler Grid = neue GridHandler (Karte) vor der Hauptmethode instanziiert wird.

Sie erstellen den Kontext am Anfang Ihrer Hauptmethode, aber der GridHandler wird instanziiert, bevor main() und daher der Kontext noch nicht erstellt wurde und Sie versuchen, die Textur mit der Methode quickload vom Renderer in Ihrem TileHandler zu laden class - map [i] [j] = neue Kachel (i * 64, j * 64, 64, 64, TileType.stone);

Um gl Befehle auszuführen, benötigen Sie zuerst einen Kontext (Display.create() erzeugt den aktuellen Kontext). Was TextureLoader tut ist, dass es die Textur auf die GPU lädt (also Befehle ausführt).

+0

Das hat funktioniert, ich habe es schon herausgefunden, als ich den "No OpenGL context im aktuellen Thread gefunden habe, wie behebe ich diesen Fehler?" Javac gepostet, aber danke trotzdem – Bryan

Verwandte Themen