标签: lwjgl

当我运行.jar时,我得到一个"java.library.path中没有lwjgl"错误

我正在通过Netbeans使用LWJGL库在Java中制作基本游戏.

我已经使用lwjgl,lwjgl_util和jinput .jar创建了一个库,并且我将-Djava.library.path = C:\ LWJGL \native\windows添加到项目属性中的"运行"类别.

当我在Netbeans中运行该文件时,它运行完美,没有任何问题.但是当我通过双击文件运行.jar时,没有任何东西弹出(据我所知,甚至没有瞬间的cmd错误窗口).当我通过命令行运行文件时,我得到:

C:\Users\200160765>java -jar "C:\Users\200160765\Documents\NetBeansProjects\Game
\dist\Game.jar"
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.libr
ary.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at org.lwjgl.Sys$1.run(Sys.java:73)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
        at org.lwjgl.Sys.loadLibrary(Sys.java:82)
        at org.lwjgl.Sys.<clinit>(Sys.java:99)
        at org.lwjgl.opengl.Display.<clinit>(Display.java:130)
        at game.Draw.createWindow(Draw.java:198)
        at game.Draw.init(Draw.java:214)
        at game.Draw.run(Draw.java:56)
        at game.Main.main(Main.java:9)
Run Code Online (Sandbox Code Playgroud)

我已经尝试将DLL和.jar库文件移动到与Game.jar相同的目录中的'lib'文件夹中,并将它们移动到与Game.jar相同的目录中,但是我得到了同样的错误.有人可以帮助我,为什么我似乎无法在netbeans之外工作?

java opengl command-line lwjgl command-line-arguments

7
推荐指数
1
解决办法
2万
查看次数

LWJGL:打开窗口会导致程序崩溃

我试图在Java/LWJGL中制作一个简单的游戏.我正在关注在Windows上制作的教程,我正在使用mac.我抄他的代码打开了一个窗口,字符中的字符和程序崩溃立刻给了我一个非常漫长而奇怪的错误,可能有事情做与指针(其实我不知道).以下是创建窗口的行,我在其中使用了属性中定义宽度和高度的窗口:

 window = glfwCreateWindow(width, height, "Flappy Bird", NULL, NULL);
Run Code Online (Sandbox Code Playgroud)

当我在我的Mac上运行它时,它给了我这个错误:

2015-10-12 13:18:38.475 java[496:31875] *** Assertion failure in + [NSUndoManager _endTopLevelGroupings], /SourceCache/Foundation/Foundation-1154/Misc.subproj/NSUndoManager.m:340
2015-10-12 13:18:38.476 java[496:31875] +[NSUndoManager(NSInternal) _endTopLevelGroupings] is only safe to invoke on the main thread.
2015-10-12 13:18:38.476 java[496:31875] (
0   CoreFoundation                      0x00007fff98c3003c __exceptionPreprocess + 172
1   libobjc.A.dylib                     0x00007fff9620a76e objc_exception_throw + 43
2   CoreFoundation                      0x00007fff98c2fe1a +[NSException raise:format:arguments:] + 106
3   Foundation                          0x00007fff99f6199b -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 195
4   Foundation                          0x00007fff99ee364f +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 156
5   AppKit                              0x00007fff96ecbb95 -[NSApplication run] + 756
6 …
Run Code Online (Sandbox Code Playgroud)

java opengl lwjgl

7
推荐指数
1
解决办法
597
查看次数

LWJGL不会在NetBeans之外工作

我无法弄清楚为什么我的LWJGL3应用程序不能在NetBeans之外运行.我将所有本地人复制到同一个目录.作为Jar,如果我直接从Jar运行,我会收到错误:

[LWJGL] GLFW_API_UNAVAILABLE error
    Description : WGL: The driver does not appear to support OpenGL
    Stacktrace  :
            org.lwjgl.glfw.GLFW.nglfwCreateWindow(GLFW.java:1146)
            org.lwjgl.glfw.GLFW.glfwCreateWindow(GLFW.java:1227)
            com.alpha.core.Window.Init(Window.java:101)
            com.alpha.core.Game.GameLoop(Game.java:33)
            com.alpha.core.Game.Start(Game.java:23)
            com.alpha.tests.Main.main(Main.java:11)
Exception in thread "main" java.lang.RuntimeException: Failed to create the GLFW window
    at com.alpha.core.Window.Init(Window.java:103)
    at com.alpha.core.Game.GameLoop(Game.java:33)
    at com.alpha.core.Game.Start(Game.java:23)
    at com.alpha.tests.Main.main(Main.java:11)
Run Code Online (Sandbox Code Playgroud)

图形驱动程序更新,如果我从IDE运行应用程序,所有的DLL都在那里,我不知道是什么导致这个.

任何帮助将不胜感激,提前感谢!

java opengl netbeans lwjgl

7
推荐指数
1
解决办法
356
查看次数

为什么这不是一个正方形?LWJGL

我有一个基本的LWJGL窗口设置,我正在尝试使用该glBegin(GL_QUADS)方法绘制一个正方形.Square square = new Square(25, 25, 25),是我调用Square类绘制正方形的方式......但它是一个矩形.当我打电话给它时,我将所有25个作为参数传递.前两个是起始坐标,最后25个是边长,如下所示.生成矩形我做错了什么?

public Square(float x,float y,float sl) {
    GL11.glColor3f(0.5F, 0.0F, 0.7F);
    glBegin(GL11.GL_QUADS);
        glVertex2f(x, y);
        glVertex2f(x, y+sl);
        glVertex2f(x+sl, y+sl);
        glVertex2f(x+sl, y);
    glEnd();
}
Run Code Online (Sandbox Code Playgroud)

我的视口代码

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity(); // Resets any previous projection matrices
    glOrtho(0, 640, 0, 480, 1, -1);
    glMatrixMode(GL_MODELVIEW);
Run Code Online (Sandbox Code Playgroud)

java lwjgl

7
推荐指数
1
解决办法
244
查看次数

如何使用LWJGL加载图像以用作openGL纹理?

我正在尝试使用LWJGL库将图像作为openGL的纹理加载.从我到目前为止发现的,我需要将纹理作为ByteBuffer传递给openGL.我现在拥有的是一些正确加载图像的代码,并将其存储在BufferedImage对象中.问题是,我不知道如何从BufferedImage到包含正确格式的数据的ByteBuffer,以便与openGL一起使用(作为函数GL11.glTexImage2D()的输入).非常感谢帮助!

java opengl lwjgl

6
推荐指数
2
解决办法
5489
查看次数

OpenGL alpha混合

我在alpha混合上发现了5349574673页,但我仍然无法获得所需的结果.我正在尝试使用opengl正确显示gif/png文件(使用透明度/半透明度).

这是我的初始化位:

glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); //I've seen this on most tutorials
glDisable(GL_DEPTH_TEST); //it's a 2D game
//...loading matrices and so on
Run Code Online (Sandbox Code Playgroud)

我确定图像有透明度,并且正确加载.
glBlendFunc(GL_ONE,GL_ONE); 但我无法判断它是否在alpha通道上做任何事情,因为它会渲染为黑色=>混合工作
glColor4f(1f,1f,1f,0.3f); 工作得很好,我可以画出透明的东西

PS我正在使用这个例子http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Game进行学习

编辑 我使用了用GIMP和其他纹理加载器编码的其他纹理,它现在工作正常.

opengl alphablending lwjgl

6
推荐指数
1
解决办法
9073
查看次数

Maven 程序集插件在 jenkins 中重新下载依赖项

由于某种原因,每次我尝试使用 Jenkins 构建项目时,maven 似乎都在尝试下载项目的依赖项。有一些问题。第一个是它根本不应该这样做,另一个问题是它甚至没有尝试从正确的存储库下载它们,这意味着它必须等待它们中的每一个都超时。

我可以自己运行 mvn clean package,它会在大约 4 秒内构建它,因为所有依赖项都在我的本地 .m2 存储库中。Jenkins 安装在本地并共享此 Maven 存储库,所以我不知道为什么它的行为不同。看来 jenkins 正在发出带有 -B 和 -f 标志的 maven 命令,并使用 install 而不是 package,但即使我自己这样做,它也会在几秒钟内完成,而 Jenkins 由于所有超时而需要大约 8 分钟它必须等待。

我标记了 Slick2d 和 lwjgl 库,因为我认为这与它们有关,因为它们不在公共 Maven 存储库中,而且我必须手动将它们的存储库添加到 pom 中。

还值得注意的是,构建完成并成功,唯一的区别是 Jenkins 花费了 8 分钟的超时时间,而我自己则在几秒钟内完成了超时。

另外,当我最初试图弄清楚这一点时,当我尝试手动执行此操作时也会发生这种情况。在我添加 Maven Natives 存储库后,它停止执行此操作,但我不知道为什么 Jenkins 仍在花时间,因为它们共享相同的本地存储库并且

更新:在尝试找出发生了什么之后,我似乎已经将其范围缩小到与 Maven 程序集插件相关,因为如果我从我的 pom 中取出该部分,它就可以正常工作。

这是我的 pom 文件的相关部分:

<repositories>
    <repository>
        <id>slick</id>
        <name>slick</name>
        <url>http://slick.cokeandcode.com/mavenrepo</url>
    </repository>
    <repository>
        <id>mavenNatives</id>
        <name>Maven Natives Repository</name>
        <url>http://mavennatives.googlecode.com/svn/repo</url>
    </repository>
    <repository>
        <id>nolat.org</id>
        <name>Nolat</name>
        <url>https://raw.github.com/Talon876/repo/master/releases</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>junit</groupId> …
Run Code Online (Sandbox Code Playgroud)

java lwjgl maven jenkins slick2d

6
推荐指数
1
解决办法
4525
查看次数

无法找到LWJGL Display类

我已经将LWJGL安装到Java项目中,我无法导入Display类.

import org.lwjgl.opengl.display;
Run Code Online (Sandbox Code Playgroud)

给出了一个无法解决的错误.

DisplayMode和其他类也缺失.我在broswer中找不到任何一个.

java lwjgl

6
推荐指数
1
解决办法
1万
查看次数

如何绑定GLSL中的统一位置?

我试图将统一变量绑定到某个位置,但我目前无法弄清楚如何:

要绑定属性(例如顶点/普通数据),我使用以下代码:

Override
protected void bindAttributes() {
    super.bindAttribute(1, "position");
    super.bindAttribute(2, "textureCoords");
    super.bindAttribute(3, "normal");
}
protected void bindAttribute(int attribute, String variableName){
    GL20.glBindAttribLocation(programID, attribute, variableName);
}
Run Code Online (Sandbox Code Playgroud)

我想对统一变量做同样的事情.

目前,我正在获取自动分配的位置,如下所示:

public int location_transformationMatrix;
public int location_lightPosition;
public int location_lightColour;

@Override
public void getAllUniformLocations(){
    location_transformationMatrix = super.getUniformLocation("transformationMatrix");
    location_lightPosition = super.getUniformLocation("lightPosition");
    location_lightColour = super.getUniformLocation("lightColour");
}
Run Code Online (Sandbox Code Playgroud)

然而,由于我随后绑定了属性,这最多会导致数据丢失,例如照明和法线,最糟糕的是,大约有60%的人试图播放它.

java opengl glsl lwjgl

6
推荐指数
1
解决办法
699
查看次数

如何在Slick2D中检测到旋转图像上的单击?

在绘制之前,我有一个旋转的图像.图像旋转六角形的角度.换句话说,图像基本上"突出显示"六边形的各个边缘.我需要检测鼠标是否在此旋转图像内被单击.在未旋转的图像中检测鼠标单击非常简单,但我不知道如何检测旋转点内的点击.有没有办法在旋转后获取图像角点,这样我就可以在图像顶部放置一个不可见的多边形并使用Polygon.contains()?

                    Image highlightEdge = new Image("assets/img/highlightEdge.png");
                    if(angle == 90){
                        highlightEdge.setCenterOfRotation(highlightEdge.getWidth(), 0);
                        highlightEdge.rotate(new Float(angle));
                        highlightEdge.draw(testPoint.x - 56, testPoint.y);
                    } else if(angle == 210) {
                        highlightEdge.setCenterOfRotation(0, 0);
                        highlightEdge.rotate(new Float(angle));
                        highlightEdge.draw(lastSettlement.x - 72, lastSettlement.y - 32);
                    } else if( angle == 330){
                        highlightEdge.setCenterOfRotation(0, 0);
                        highlightEdge.rotate(new Float(angle));
                        highlightEdge.draw(lastSettlement.x - 8, lastSettlement.y - 32);
                    } else if(angle == 30){
                        highlightEdge.setCenterOfRotation(0, 0);
                        highlightEdge.rotate(new Float(angle));
                        highlightEdge.draw(lastSettlement.x-8, lastSettlement.y);
                    } else if(angle == 150){
                        highlightEdge.setCenterOfRotation(0, 0);
                        highlightEdge.rotate(new Float(angle));
                        highlightEdge.draw(lastSettlement.x-72, lastSettlement.y);
                    } else {
                        highlightEdge.setCenterOfRotation(0, 0);
                        highlightEdge.rotate(new Float(angle));
                        highlightEdge.draw(lastSettlement.x-40, lastSettlement.y …
Run Code Online (Sandbox Code Playgroud)

java lwjgl slick2d

6
推荐指数
1
解决办法
174
查看次数