几经周折,终于做出来了一个简单的粒子系统。很简单,很丑,但我相信会对想了解这方面的人有所帮助。
什么是粒子系统
粒子系统是利用粒子模拟自然场景的一种技术,例如说雨,雪,水流,爆炸,烟雾等场景。由于这些场景都是根据物理模型计算出来的,也可以说,粒子系统是基于物理原理的一种建模方法。
粒子类
粒子系统是由粒子组成的。一般具有的特征包括质量、位置、速度、受力(能量)、生命周期等。很多个粒子也可以相互作用、组合、效果叠加。
下面是我的类:
;
}
}
粒子系统类
粒子系统主要是用来控制粒子的运动和绘制粒子。不清楚作用的话就看代码。
.Draw(gameTime);
}
}
两个类加上游戏主框架,就可以看到效果了,如下图。
这是从两个不同方向看到粒子从两个地方发出(粒子都是一个个球啊,由于拉的太远所以看起来有点像点)
改进
不过现在这样式很不乍的(主要是一点也看不出里面是一个个的小球),下面来给它们加上环境光和颜色。
HLSL代码如下:
compile ps_1_1 PixelShaderFunction();
}
}
当然粒子的代码也要改啊
下面是新的代码:
在粒子类中加入字段:public Color color;用于保存粒子的颜色
粒子类的构造方法中加入:
);
随机产生一个颜色。
修改粒子系统的Draw方法:
.Draw(gameTime);
}
最终效果:
从下边和从远处的水平面看到的效果