package ca.immanuel.flappy;
import org.lwjgl.glfw.GLFWVidMode;
import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.opengl.GL11.GL_TRUE;
import static org.lwjgl.system.MemoryUtil.NULL;
public class Main implements Runnable {
private int width = 1280;
private int height = 720;
private Thread thread;
private boolean running = false;
/*
LWJGL cant use the GLFWwindow struct because structs don't exist in java
so we instead use an ID system in Java that's why we use a long.
*/
private long window;
public void start() {
running = true;
thread = new Thread(this, "Game");
thread.start();
}
private void init() {
if (!glfwInit()){
System.out.println("GLFW failed to init!");
System.exit(-1);
}
glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwCreateWindow(width, height, "Flappy Bird", NULL, NULL);
if (window == NULL) {
System.out.println("Could not create window");
System.exit(-1);
}
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
glfwSetWindowPos(window, (vidmode.width() - width) /2, (vidmode.height() - height) /2);
glfwMakeContextCurrent(window);
glfwShowWindow(window);
}
public void run() {
init();
while(running) {
update();
render();
if (glfwWindowShouldClose(window) == true){
running = false;
}
}
}
private void update() {
glfwPollEvents();
}
private void render() {
glfwSwapBuffers(window);
}
public static void main(String[] args) {
new Main().start();
}
}
任务:Main.Main()失败无法创建窗口
执行任务“:main.main()”失败。
进程“命令”c:/program files/java/jdk-16/bin/java.exe“以非零退出值-1结束
好吧,所以问题很简单,我从来没有改变windows值
在长窗口设置为零之前
但我发现必须将其设置为GLFWCreateWindow:
glfwCreateWindow(width, height, "Flappy Bird", NULL, NULL);
window = glfwCreateWindow(width, height, "Flappy Bird", NULL, NULL);
我今天下载了LWJGL3,发现它几乎完全重写了。我查阅了一个关于如何创建窗口的教程,但我仍然有创建窗口的问题。 代码运行时没有问题:控制台中没有错误,但窗口没有显示!
我在MacOS上使用Intellij。我对编程比较陌生,并从LWJGL网站上学习本教程。我遵循了所有的说明,并在VM选项中添加了-XStartonFirstThread。但是,每当我在IntelliJ中运行程序(HelloWorld.java),我就会看到停靠站中的java exec窗口,并得到“Hello LWJGL 3.2.3 build 13!”在控制台,但窗户打不开,我根本看不到窗户。
我有两台显示器;创建 LWJGL 窗口时: 它总是出现在我的左侧屏幕上。是否有一个参数可以设置以更改它出现在哪个屏幕上,例如:
我不熟悉使用LWJGL(一般来说Java也是如此),因此,我阅读了他们关于入门的页面,他们提供了一个Hello World程序示例。我自己尝试运行它,发现它出现以下错误:<代码>2020-03-18 10:20:02.145 java[19779:1119716]***由于未捕获的异常“nSinternalinconsistenceexception”而终止应用程序,原因:“[NSUndoMana
我试图用Java/LWJGL做一个简单的游戏。我在学习一个在windows上制作的教程,我用的是Mac。我复制了他的代码来打开一个窗口字符,程序立即崩溃了,给了我一个很长很奇怪的错误,可能与指针有关(我实际上不知道)。下面是用于创建窗口的行,我使用该窗口的属性中定义了宽度和高度: 当我在mac上运行它时,它会给我以下错误:
我在调整窗口大小时有问题。当我尝试调整窗口大小时,屏幕没有正确地改变。这是窗口的原始大小: 但是当我调整窗口的大小时,屏幕会变成这样: 每次调整窗口大小但仍然不能工作时,我都会调用updateProjectionMatrix()和glVievport()。 我的代码: