2015-10-06 72 views
1

我正在尝试使用64位JDK 8u60编译LWJGL和Slick2D中的程序。但是,当我不把土着当成它说它缺少lwjgl64。导入lwjgl64.dll原生文件后,会出现运行时错误,指出我的像素格式未加速。我已阅读其他来源,并且有人说我需要安装较新的驱动程序。但是,我检查了新的更新并没有任何更新。使用32位JDK 8u60时,不会出现运行时错误,也不需要指定本机。有人可以帮我解决这个问题吗?我宁愿不必安装JDK 8u60 32位安装而不是64位。LWJGL&Slick2D 64位

这里是我的代码

package dungeon.main; 

import org.newdawn.slick.AppGameContainer; 
import org.newdawn.slick.BasicGame; 
import org.newdawn.slick.GameContainer; 
import org.newdawn.slick.Graphics; 
import org.newdawn.slick.SlickException; 

public class Main extends BasicGame { 
private static int width = 1200; 
private static int height = 800; 
private static boolean fullscreen = false; 
private static int targetFramerate = 120; 
private static boolean showFramerate = true; 
public static void main(String[] args) { 
    try { 
     AppGameContainer appGameContainer = new AppGameContainer(new Main("Dungeon")); 
     appGameContainer.setDisplayMode(width, height, fullscreen); 
     appGameContainer.setTargetFrameRate(targetFramerate); 
     appGameContainer.setShowFPS(showFramerate); 
     appGameContainer.start(); 
    } catch (SlickException e) { 
     e.printStackTrace(); 
    } 
} 
public Main(String title) { 
    super(title); 
    // TODO Auto-generated constructor stub 
} 
@Override 
public void init(GameContainer arg0) throws SlickException { 
    // TODO Auto-generated method stub 

} 
@Override 
public void update(GameContainer arg0, int arg1) throws SlickException { 
    // TODO Auto-generated method stub 

} 
@Override 
public void render(GameContainer arg0, Graphics arg1) throws SlickException { 
    // TODO Auto-generated method stub 

} 
} 

这里的错误

Tue Oct 06 09:03:57 EDT 2015 INFO:Slick Build #237 
Tue Oct 06 09:03:57 EDT 2015 INFO:LWJGL Version: 2.9.2 
Tue Oct 06 09:03:57 EDT 2015 INFO:OriginalDisplayMode: 1600 x 900 x 32 @60Hz 
Tue Oct 06 09:03:57 EDT 2015 INFO:TargetDisplayMode: 1200 x 800 x 0 @0Hz 
Tue Oct 06 09:03:57 EDT 2015 ERROR:Pixel format not accelerated 
org.lwjgl.LWJGLException: Pixel format not accelerated 
    at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method) 
    at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52) 
    at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:253) 
    at org.lwjgl.opengl.Display.createWindow(Display.java:306) 
    at org.lwjgl.opengl.Display.create(Display.java:848) 
    at org.lwjgl.opengl.Display.create(Display.java:757) 
    at org.newdawn.slick.AppGameContainer.tryCreateDisplay(AppGameContainer.java:302) 
    at org.newdawn.slick.AppGameContainer.access$000(AppGameContainer.java:34) 
    at org.newdawn.slick.AppGameContainer$2.run(AppGameContainer.java:367) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:348) 
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:317) 
    at dungeon.main.Main.main(Main.java:21) 
org.newdawn.slick.SlickException: Failed to initialise the LWJGL display 
    at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:378) 
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:317) 
    at dungeon.main.Main.main(Main.java:21) 

回答

1

如果你做的另一种方式不止这一个尝试通过这些线路设置当地人

System.setProperty("org.lwjgl.librarypath", new File(new File(System.getProperty("user.dir"), "native"), LWJGLUtil.getPlatformName()).getAbsolutePath()); 
System.setProperty("net.java.games.input.librarypath", System.getProperty("org.lwjgl.librarypath")); 

,然后粘贴原生成/ yourgamefolder/natives/windows/...

即使在“像素格式未加速”时也可以运行lwjgl,您可以打开软件模式。

System.setProperty("org.lwjgl.opengl.Display.allowSoftwareOpenGL", "true"); 

(但是软件的渲染速度很慢)

+0

我想你的输入法设置的代码当地人,但这并没有在相同的错误之前的工作和结果。软件渲染确实奏效,但不幸的是,这不是我正在寻找的。我需要使用64位JDK的硬件渲染 – JavaFreak

+0

我使用的是64位JDK 7,一切正常。用java 7.再次检查它。如果你一直得到这个问题,它将与本地库有关 – Unlox

+0

这里lwjgl土着对我来说很漂亮http://www.speedyshare.com/s9NWR/native.zip – Unlox