Я планирую написать простой космический шутер.Я прочитал, что метод repaint () является только запросом, и он не выполняется каждый раз, когда он вызывается.Я полагаю, что замечаю эффекты этого, поскольку мой космический корабль имеет тенденцию немного отставать, когда я перемещаю это.В настоящее время я просто рисую свой корабль в методе JPCanel paintComponent () и продолжаю вызывать repaint () через регулярные промежутки времени (моя панель также Runnable).Видя, что repaint () потенциально может меня испортить, я пытаюсь найти способ обойти это, однако у меня закончились идеи.Код, который у меня пока есть:
private void renderGraphics() {
if (MyImage == null) {
MyImage = new BufferedImage(getPreferredSize().width,
getPreferredSize().height, BufferedImage.TYPE_INT_RGB);
}
MyGraphics = MyImage.getGraphics();
MyGraphics.setColor(Color.BLACK);
MyGraphics.fillRect(0, 0, getPreferredSize().width, getPreferredSize().height);
MyGraphics.drawImage(ship.getImage(), ship.getCurrentX(), ship.getCurrentY(), null);
}
Идея заключалась в том, чтобы создать собственную графику, а затем заставить ее рисовать JPanel и продолжать вызывать ее вместо repaint () в моем методе run (), однакоЯ понятия не имею, как это сделать.Я бы оценил любой вклад по этому вопросу.