现版本粒子仿真系统主要由六个类组成,即界面,监听器,线程,粒子对象,数组队列。界面是最基本,没有特别的,这里不再赘述。
——线程
线程里面的死循环体负责不断产生粒子并加入导队列中,而且负责将队列里面的粒子画出。
这里我采用了缓冲区来对画出来的图像以及背景进行处理,因为我觉得通过不断重绘背景来对已经画出的粒子轨迹进行擦除,会让粒子效果看上去更好。
//创建缓存区域
BufferedImage buff;
Graphics buffG;
我之前是将生成小球的死循环体写在监听器里面,但是出现了一个问题,监听器在不断运行,就不能触发窗体关闭的方法了,所以关闭不了窗口……然后将循环体放在线程里面,解决掉了这个问题。
@Override
public void run() {
// TODO Auto-generated method stub
//System.out.println("click");
buff = new BufferedImage(2400,1200,BufferedImage.TYPE_4BYTE_ABGR);
//获取缓存区域的画布
buffG = buff.getGraphics();
ImageIcon im = new ImageIcon(this.getClass().getResource("Sea.jpg"));
while(true)
{ //不断创建小球并添加到数组队列
cd


1636

被折叠的 条评论
为什么被折叠?



