用钥匙移动物体会留下痕迹

问题描述 投票:0回答:1

在我的 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();

}
java image swing
1个回答
0
投票

如果我理解正确,你的问题可能是你的背景似乎保留了最后绘制的东西。

所以我认为移动图像时需要重新绘制背景。

这里是 Java 图形基础知识的 参考 以及简单的示例

© www.soinside.com 2019 - 2024. All rights reserved.