一、运用知识
1、欧拉公式:
r(t+dt)=r(t)+v(t)*dt;
v(t+dt)=v(t)+a(t)*dt;
2、多线程控制;
3、双缓冲绘图;
4、音频文件加入
二、功能实现:
1、单个烟花定点发射;
2、烟花爆炸位置、颜色、生命周期等随机;
3、加入了音效;
4、使用了双缓冲绘图
5、引入了背景图;
6、烟花燃放完自动退出界面
三、效果图
四、代码
常数类:
package com.Liao.Fireworks0728v0;
public interface Config {
public static final int SCREEN_WIDTH = 1366;//屏幕宽度
public static final int SCREEN_HEIGHT = 768;//屏幕高度
public static final int SIZE = 16;//粒子大小
public static final double DT = 0.01;//时间变量
public static final Vector_2 PSTART=new Vector_2(683,768);//粒子初始位置
public static final Vector_2 VSTART=new Vector_2(0,-500);//粒子初始速度
public static final Vector_2 ASTART=new Vector_2(0,200);//粒子初始加速度
}
二维向量类:
package com.Liao.Fireworks0728v0;
public class Vector_2 {
public double x,y;
public Vector_2(double x, double y) {
super();
this.x = x;
this.y = y;
}
//向量加法
public Vector_2 add(Vector_2 v){
return new Vector_2(this.x+v.x,this.y+v.y);