【发布时间】: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