Java LWJGL 3 gra 2 java.lang.NullPointerException

Witam piszę grę 2D na zaliczenie przedmiotu. Napisałem okno oraz klasę odpowiedzialną za sprawdzenie czy klawisz został wciśnięty. Po skompilowaniu eclipse pokazuje następujące błędy:

Exception in thread “main” java.lang.NullPointerException
at org.lwjgl.system.Checks.check(Checks.java:100)
at org.lwjgl.glfw.GLFW.glfwGetKey(GLFW.java:3338)
at Engine.IO.isKeyDown(IO.java:23)
at Engine.IO.update(IO.java:69)
at Engine.IO.(IO.java:18)
at Main.Game.(Game.java:16)
at Main.Main.main(Main.java:9)

window.java
IO.java
game.java
Main.java

Z błędu wynika, że gdzieś jest pusta wartość, ale nie mogę jej znaleźć. Wydaje mi się, że wszystko dobrze jest napisane.

Nie ma nigdzie pustej wartości, bo natywne bindingi tak nie działają. Jakbyś przejrzał kod na github, wiedziałbyś, że jest to wynik przekazania long window = 0 (NULL w rozumieniu C). Tworzysz okno wołając konstruktor Window, ale nigdy nie wołasz create, które faktycznie alokuje natywne okno w metodzie Window#create(), gdzie jest wywołanie GLFW#glfwCreateWindow()

Ogólnie kod jest tak nieczytelny, że prawdopodobnie nawet jak to poprawisz to zgubisz się jeszcze 10 razy w innych rzeczach…

PS Tu masz jakiś pierwszy z brzegu tutorial, kod wygląda znacznei lepiej: https://tutorialedge.net/java/lwjgl3/creating-game-window-lwjgl3-glfw/

Tutaj masz coś od tworców tej biblioteki, lepszego źródła raczej nie będzie: https://github.com/LWJGL/lwjgl3-wiki/wiki/2.6.-Tutorial-Index

1 polubienie

Dzięki za pomoc