(Извините, я не могу получить рабочее Eg проблемы, мне нужна помощь для моей помощи!)
Я в процессе создания пользовательского игрового движка и столкнулся с проблемой, из-за которойпока игра запущена - игра перестает принимать данные
Я проверил, и программа продолжает работать в фоновом режиме.Кажется, он также не меняется на разных машинах (мое основное устройство - Mac Book Pro 2011)
import java.awt.event.*;
import java.io.IOException;
import java.awt.*;
import javax.swing.*;
public class Focus extends JFrame implements KeyListener {
private static final long serialVersionUID = 1L;
char currKey = '\0';
public static void main(String[] args) throws IOException {
SwingUtilities.invokeLater(new Runnable() {public void run() {new UIManager();}});
}
public Focus() throws IOException {
Container contentPane = getContentPane();
contentPane.add(new DrawCanvas());
addKeyListener(this);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setFocusable(true);
setVisible(true);
}
private class DrawCanvas extends JPanel {
private static final long serialVersionUID = 1L;
public void paintComponent(Graphics pen) {
//Drawloop
if(currKey == 'k') {
//This is the code that randomly stops running
System.out.println("Yo");
}
try {
Thread.sleep(10);
}
catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
}
@Override
public void keyTyped(KeyEvent e) {
currKey = e.getKeyChar();
}
@Override
public void keyPressed(KeyEvent e) {
currKey = '\0';
}
@Override
public void keyReleased(KeyEvent e) {
}
}
Код выглядит мне правильно (но в то же время всегда так) и единственно возможное отключениеДело в том, что AWT установлен в Main, Run в UIManager, и код перемещения находится в проигрывателе, хотя я недостаточно знаю об AWT, чтобы знать, так ли это, и перемещение кода в резервной копии приводит к сбою программы.Любая помощь будет принята с благодарностью.