Java 爪哇让球弹起,它留下了痕迹?

Java 爪哇让球弹起,它留下了痕迹?,java,Java,我是java新手,正在写一个乒乓球游戏。 我让球移动(这是我的首要任务),让它在屏幕上成为一个焦点。 但由于某些原因,它在后面留下了一条黑线,我不知道我是否应该对此进行勘误,但这是我的两个类的代码(Ball类只是一个保存球信息的类) 请帮忙 基本上,球移动的任何地方都会永久保持颜色。黑色在画布上。如果你想摆脱这种情况,你需要在每次球移动时刷新,并在再次绘制球的位置之前将画布重新绘制为Color.WHITE(或其他) 具体来说,请在此处查看您的代码: public void Draw(){ B

我是java新手,正在写一个乒乓球游戏。 我让球移动(这是我的首要任务),让它在屏幕上成为一个焦点。 但由于某些原因,它在后面留下了一条黑线,我不知道我是否应该对此进行勘误,但这是我的两个类的代码(Ball类只是一个保存球信息的类)


请帮忙

基本上,球移动的任何地方都会永久保持
颜色。黑色
画布上
。如果你想摆脱这种情况,你需要在每次球移动时刷新,并在再次绘制球的位置之前将
画布重新绘制为
Color.WHITE
(或其他)

具体来说,请在此处查看您的代码:

public void Draw(){
  BufferStrategy bs = this.getBufferStrategy();
  if(bs==null){
    createBufferStrategy(2);
  } else {
    Graphics g = bs.getDrawGraphics();
    g.setColor(Color.BLACK);
    g.fillOval(ball.BallLocationX, ball.BallLocationY, 20, 20);
    g.dispose();
    bs.show();
  }
}
这里没有逻辑覆盖您以前对指示球位置的
画布所做的更改

另外,作为附带的挑剔,Java标准在
camelCase
中有方法名


并回答评论中的问题:中没有任何内容可以自动理解
画布
的默认背景,并且可以将所有其他图形属性重置为该背景。然而,要获得此功能,您只需在绘制球的位置之前重新绘制默认布局(无论是一种颜色,还是基本背景图像,或其他任何内容)。

基本上,球移动的任何地方都会永久保持
颜色。黑色
画布上。如果你想摆脱这种情况,你需要在每次球移动时刷新,并在再次绘制球的位置之前将
画布重新绘制为
Color.WHITE
(或其他)

具体来说,请在此处查看您的代码:

public void Draw(){
  BufferStrategy bs = this.getBufferStrategy();
  if(bs==null){
    createBufferStrategy(2);
  } else {
    Graphics g = bs.getDrawGraphics();
    g.setColor(Color.BLACK);
    g.fillOval(ball.BallLocationX, ball.BallLocationY, 20, 20);
    g.dispose();
    bs.show();
  }
}
这里没有逻辑覆盖您以前对指示球位置的
画布所做的更改

另外,作为附带的挑剔,Java标准在
camelCase
中有方法名


并回答评论中的问题:中没有任何内容可以自动理解
画布
的默认背景,并且可以将所有其他图形属性重置为该背景。不过,要获得此功能,您只需在绘制球的位置之前重新绘制默认布局(无论是一种颜色、基本背景图像还是其他任何布局)。

有没有办法“清洁”整个画布?谢谢,您一发表评论,我就完全理解了。我会竖起你的大拇指。无论如何,谢谢你:D@vainolo在问题中回答。:)@谢谢你!如果答案对你有帮助,可以考虑在下投/下投下点击小复选标记。StackOverflow的良好实践。祝你的项目好运!当数十人或数百人同时在同一个项目上工作时,您会惊讶于这些格式标准有多大帮助。它会变得非常疯狂!有没有办法“清洗”整个画布?谢谢,你一发表评论我就明白了。我会竖起你的大拇指。无论如何,谢谢你:D@vainolo在问题中回答。:)@谢谢你!如果答案对你有帮助,可以考虑在下投/下投下点击小复选标记。StackOverflow的良好实践。祝你的项目好运!当数十人或数百人同时在同一个项目上工作时,您会惊讶于这些格式标准有多大帮助。它会变得非常疯狂!这真的很长。请看看什么是未来的职位。这真的很长。请看看什么是未来的职位。