隐藏/处理DrawImage

时间:2011-08-05 00:17:58

标签: graphics applet java

我正在编写一个显示图像在屏幕上移动的程序,但是对于作业,我必须使用drawImage方法。我创建了一个名为turtle的新图像,然后在一点绘制图像,然后我稍后再次绘制它,但是,第一个绘制的图像仍然可见,我怎么能隐藏/使它消失。我是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.               

     }
  }

2 个答案:

答案 0 :(得分:2)

在重绘之前,您必须用背景覆盖其先前的位置。对此,clearRect将是一个不错的选择。

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顺序重绘与清除区域重叠的所有图像,以保持屏幕状态。

答案 1 :(得分:-1)

考虑一下你在做什么。你打开了一个画布然后在上面画了一些东西。然后你在上面绘制其他东西。它们都出现了。

现在,想想一个视频游戏,比如超级马里奥兄弟,当屏幕上有两个Koopas(乌龟)时。平局(koopa)被调用两次......就像你的代码一样。

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

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