[введите описание изображения здесь] [1] Я только начинал следить за серией туториалов по созданию игрового движка Java 3D, но когда Youtuber запускает следующий код, его программа работает гладко и не работает заботиться о чем угодно. Но когда я запускаю точно такой же код, он сначала имеет значение 2 FPS, а затем вылетает с сообщением об ошибке "Java (TM) двоичный SE не отвечает ...
Серия руководств: https://www.youtube.com/watch?v=pBK-lb-k-rs&list=PLEETnX-uPtBXP_B2yupUKlflXBznWIlL5&index=4
Код:
import java.util.ArrayList;
import org.lwjgl.input.Keyboard;
public class Input {
public static final int NUM_KEYCODES = 256;
private static ArrayList<Integer> currentKeys = new ArrayList<Integer>();
private static ArrayList<Integer> downKeys = new ArrayList<Integer>();
private static ArrayList<Integer> upKeys = new ArrayList<Integer>();
//I call this method in my main method and this is also what causes the lag
// I think it has to do with the indexing of the keys, but on his computer, it runs smoothly
public static void update() {
// these 3 blocks of code clear out the Arraylists above and check if a is pressed / pressed down / or released
upKeys.clear();
for(int i = 0; i < NUM_KEYCODES; i++)
if(!getKey(i) && currentKeys.contains(i))
upKeys.add(i);
downKeys.clear();
for(int i = 0; i < NUM_KEYCODES; i++)
if(getKey(i) && !currentKeys.contains(i))
downKeys.add(i);
currentKeys.clear();
for(int i = 0; i < NUM_KEYCODES; i++)
if(getKey(i))
currentKeys.add(i);
}
public static boolean getKey(int keyCode) {
return Keyboard.isKeyDown(keyCode);
}
public static boolean getKeyDown(int keyCode) {
if(downKeys.contains(keyCode))
return true;
else
return false;
}
public static boolean getKeyUp(int keyCode) {
if(upKeys.contains(keyCode))
return true;
else
return false;
}
}```
[1]: https://i.stack.imgur.com/P7POD.jpg