概述
Chapter 4为我们介绍了粒子系统的相关概念,让我们更加了解了仿真于自然系统的变化是如何产生的,更引入了继承与多态的思想,让我们对于粒子系统的创造力赞叹不已,让我们先来了解下这些原理,然后再让我们来发挥想象进行这些知识的运用创作。
原理介绍
粒子
Particle类与我们之前接触的Mover类非常类似,它具有速度、加速度等概念,但不同的是,它同时也加入了生命周期life的概念,存在于状态的消解。
粒子系统
ParticleSystem类是用于粒子列表的管理的。这个类的存在,可以帮助我们添加多个粒子系统。
继承思想的引入
通过继承,类可以从其他类中继承属性(变量)和功能(方法)。子类自动从父类中继承所有变量和函数, 除此之外,子类还可以有父类没有的函数和变量。这样子我们就可以通过一个粒子系统类,去管理不同的粒子了。
图像纹理及及加法混合
这个方法与Unity当中一致,可以帮助我们完成粒子拖尾效果的制造。
动手实践——“粒子的流动”
这一章的绘制想法来源于淘金热,想用双色以及Processing的粒子,实现这样一种感觉的创作。作品借鉴了一个Processing画手大大Richard Bourne的作品《surfs_Up_Blue》。
与以往不同的是,这次的创作,不以纯运动进行,而是以像素填色,模拟前进,首先,放出Particle类代码。
位置的前进利用3D噪声产生参数theta,变化量按照心形线方程产生。
class Particle {
float posX, posY, in, theta=0;
color c;
Particle(float x, float y, color c) {
posX = x;
posY = y;
this.c = c;
}
public void move() {
update();
checkEdge();
display();
}
void update() {
in += 0.01;
theta = noise(posX