Движущийся объект с ключами оставляет след
В моей Java-игре у меня есть класс игрока, которому назначен BufferedImage из листа спрайта. Я только что добавил в KeyAdapters и KeyListeners, которые просто перемещают игрока по экрану. Однако, когда я делаю это, он оставляет за собой след изображения.
private void render() {
BufferStrategy bs = this.getBufferStrategy();
if(bs == null) {
createBufferStrategy(3);
return;
}
Graphics g = bs.getDrawGraphics();
p.render(g); //p is the player object
g.dispose();
bs.show();
}
public static void main(String[] args) {
Game game = new Game();
game.setPreferredSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
game.setMinimumSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
game.setMaximumSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
JFrame frame = new JFrame(game.TITLE);
frame.add(game);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
game.start();
}
1 ответ
Решение
Если я правильно понимаю, ваша проблема может заключаться в том, что у вас есть фон, который, кажется, хранит в себе последние нарисованные вещи.
Поэтому я думаю, что вам нужно перекрасить фон, когда вы перемещаете изображение..
Вот ссылка на основы графики в Java с простыми примерами
Надеюсь это поможет