所以我在LWJGL中制作游戏(我认为是2),我一直在制作瓷砖网格。但是当我绑定我的纹理时,我得到一个例外,游戏将无法打开(显然),所以我一直试图解决这个问题一小时,但我似乎无法让它工作。这是我的代码,有人可以为我纠正吗?
代码:(主要类) http://pastebin.com/GvxEyGRQ
代码:(GridHandler类) http://pastebin.com/2fcwLXU5
代码:( TileType类 - 它是一个枚举) http://pastebin.com/Dk0v3BRc
代码:(瓷砖类) http://pastebin.com/TNATAjJW
代码:(渲染器类) http://pastebin.com/MBhReiAb
我的错误:
线程“main”java.lang.ExceptionInInitializerError中的异常
引起:java.lang.RuntimeException:当前线程中找不到OpenGL上下文。
在org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124)
at org.lwjgl.opengl.GL11.glGetError(GL11.java:1299)
at org.newdawn.slick.opengl.renderer.ImmediateModeOGLRenderer.glGetError(ImmediateModeOGLRenderer.java:384)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:249)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:200)
at org.newdawn.slick.opengl.TextureLoader.getTexture(TextureLoader.java:64)
at org.newdawn.slick.opengl.TextureLoader.getTexture(TextureLoader.java:24)
在Functions.renderer.loadTexture(renderer.java:58)
在Functions.renderer.quickLoad(renderer.java:67)
在Window.Tile。(Tile.java:20)
在Window.GridHandler。(GridHandler.java:30)
在Window.Main。(Main.java:31)
提前致谢, 布赖恩。
答案 0 :(得分:0)
我认为这可能是因为你的静态GridHandler grid = new GridHandler(map)在main方法之前被实例化了。
您在main方法的开头创建了上下文,但GridHandler在main()之前被实例化,因此尚未创建上下文,并且您尝试使用来自TileHandler类中的呈现器的quickload方法加载纹理 - map [i] [j] = new Tile(i * 64,j * 64,64,64,TileType.stone);
为了执行gl命令,首先需要一个上下文(Display.create()创建当前上下文)。 TextureLoader的作用是在GPU上加载纹理(因此执行命令)。