Движущийся объект с ключами оставляет след

В моей 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 с простыми примерами

Надеюсь это поможет

Другие вопросы по тегам