有没有一种方法可以在画布循环中制作图像,并一遍又一遍地重新绘制它们自己



这是学校的作业,这是我的老师写的:

将图像加载到JCanvas,并让它多次重新绘制,每次绘制之间的间隔越来越短。一旦你有了100张图片,清除屏幕,然后重新开始。

这是我迄今为止的代码:

import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
class MovingImages{

public static void main(String[]args){

JFrame frame = new JFrame("Printing Images");
frame.setSize(800,600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JCanvas canvas = new JCanvas();
frame.add(canvas);
frame.setVisible(true);

int x = 0;
int y = 0;
int num = 100;
BufferedImage image = canvas.loadImage("Earth.png");

while(num<=100 && num>0){

canvas.drawImage(image,x++,y++);

num--;
canvas.sleep(num);


if (num==0){

canvas.clear();
}

}
}
}

如有任何帮助,我们将不胜感激。

看起来您的代码正在做您所描述的事情"多次重新绘制自身,每次绘制之间的间隔越来越短";。

问题是,当你达到1而不是0时,你需要重置值,因为你的循环在达到0之前就停止了,因为&& num>0:

//Change the number to 1 not 0:
if (num==1){           
canvas.clear();
//Make sure you reset the values otherwise it will not loop again:
x = 0;
y = 0;
num = 100;
}

现在它应该根据需要循环。

最新更新