Graphics 隐藏/处理绘图图像

Graphics 隐藏/处理绘图图像,graphics,applet,java,Graphics,Applet,Java,我正在编写一个显示图像在屏幕上移动的程序,但是对于作业,我必须使用drawImage方法。我创建了一个名为“海龟”的新图像,然后在一个点上绘制图像,然后在稍后的点上再次绘制,但是,第一个绘制的图像仍然可见,如何隐藏/使其消失。我是Java新手,请尽可能简单地解释一下 谢谢 以下是我的代码示例: import java.awt.*; import java.applet.*; public class Race extends Applet { Image tortoise;

我正在编写一个显示图像在屏幕上移动的程序,但是对于作业,我必须使用drawImage方法。我创建了一个名为“海龟”的新图像,然后在一个点上绘制图像,然后在稍后的点上再次绘制,但是,第一个绘制的图像仍然可见,如何隐藏/使其消失。我是Java新手,请尽可能简单地解释一下

谢谢

以下是我的代码示例:

import java.awt.*;
import java.applet.*;

public class Race extends Applet {

         Image tortoise;

   public void init() {
           setSize(1275,1000);
           tortoise = getImage( getDocumentBase(), "resources/tortoise.png" );



   }

   public void paint( Graphics g) {

           g.drawImage(turtle, 100, 100, this);
           g.drawImage(turtle, 200, 200, this); // Both images are shown.               

     }
  }

在重新绘制之前,您必须用背景覆盖其以前的位置。这将是一个很好的选择

g.drawImage(turtle, 100, 100, this);
try {
    Thread.sleep(5000);
} catch(InterruptedException e) {}

g.clearRect(100, 100, turtle.getWidth(null), turtle.getHeight(null));
g.drawImage(turtle, 200, 200, this);

如果要在屏幕上绘制多个图像,则必须以正确的z顺序重新绘制与清除区域重叠的所有图像,以保持屏幕状态。

请考虑您正在执行的操作。你打开画布,然后在上面画些东西。然后在上面画些别的东西。它们都出现了

现在,想象一个视频游戏,比如超级马里奥兄弟,屏幕上有两只海龟。draw(koopa)会被调用两次…就像在代码中一样

为了让第一只海龟消失,你可以做几件事…最简单的是在画第二只海龟之前清除背景


之后…尝试使用for循环移动海龟,并且只使用drawImage方法一次(在循环中)。

for循环将保留awt事件线程。屏幕不会被正确更新,谢谢你捕捉到这一点…我真的只是在事后加上了最后一点。