【问题标题】:Moving Object with Keys Leaves a Trail使用键移动对象会留下痕迹
【发布时间】:2013-05-28 14:49:16
【问题描述】:

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

}

【问题讨论】:

  • 我本来打算有它的形象,但我需要更多的声誉。 :( 对不起,伙计们。
  • 发布一个链接,有人会把它做成图片。
  • 很难知道没有代码会发生什么,你觉得呢?根据我在这里的经验,我们在读心或猜测未显示的代码方面很糟糕,这应该很明显。你是否覆盖paintComponent(...)?如果是这样,你是在调用 super 的方法吗?
  • 我们仍然需要看看你在哪里做你的实际绘图。您的问题与 KeyListener无关,与您的绘图有关。
  • 看播放器类中的render方法。

标签: java image swing keylistener trail


【解决方案1】:

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

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

这里有一个reference 用简单的示例介绍 Java 中的图形基础

希望对你有帮助

【讨论】:

  • 就是这样。非常感谢!
  • @sparklyllama 检查它作为答案,以便其他人可以看到解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
  • 2021-07-07
  • 2019-06-09
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
相关资源
最近更新 更多