Java粒子系统(烟火篇)

用好粒子系统,自己也可以自制一场烟火!

比如说这样的,这就是一个慢慢优化的过程。

 

 

下面就上代码大家仔细体会一下吧

import javax.swing.JFrame;
import javax.swing.JPanel;

public class FireWorksMain extends JPanel {
	public static void main(String[] args) {
		FireWorksMain fw = new FireWorksMain();
		fw.initUI();
	}

	public void initUI() {
		JFrame f = new JFrame();
		f.setTitle("烟花");
		f.setSize(800, 700);
		f.setDefaultCloseOperation(3);
		f.setLocationRelativeTo(null);
		f.add(this);
		f.setVisible(true);

		FireWorksThread ft = new FireWorksThread(this);
		ft.start();
	}
}

 

主函数类都很熟悉了吧

import java.awt.Color;

public class Particle {
	// 粒子的起点,速度,重力
	public VecT position, velocity, acceleration;
	public Color color;
	public double life, age, start_time;
	public int size;
	// 在界面上绘制时的x,y坐标
	public int x, y;

	public int getX() {
		return (int) position.x;
	}

	public int getY() {
		return (int) position.y;
	}
}

粒子类也是一样的

public class VecT {
	public double x, y;

	public VecT(double x, double y) {
		this.x = x;
		this.y = y;
	}

	// 向量加
	public VecT add(VecT p) {
		return new VecT(this.x + p.x, this.y + p.y);
	}

	// 向量乘
	public VecT multiply(double f) {
		return new VecT(this.x * f, this.y * f);
	}

}

向量类也不要变

import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics;
import j
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值