几经周折,终于做出来了一个简单的粒子系统。很简单,很丑,但我相信会对想了解这方面的人有所帮助。

什么是粒子系统

粒子系统是利用粒子模拟自然场景的一种技术,例如说雨,雪,水流,爆炸,烟雾等场景。由于这些场景都是根据物理模型计算出来的,也可以说,粒子系统是基于物理原理的一种建模方法。

粒子类

粒子系统是由粒子组成的。一般具有的特征包括质量、位置、速度、受力(能量)、生命周期等。很多个粒子也可以相互作用、组合、效果叠加。

下面是我的类:

 ;
        }
    }

 

粒子系统类

粒子系统主要是用来控制粒子的运动和绘制粒子。不清楚作用的话就看代码。

.Draw(gameTime);
}
}

两个类加上游戏主框架,就可以看到效果了,如下图。

XNA 粒子系统入门 XNA 粒子系统入门

这是从两个不同方向看到粒子从两个地方发出(粒子都是一个个球啊,由于拉的太远所以看起来有点像点)

改进

不过现在这样式很不乍的(主要是一点也看不出里面是一个个的小球),下面来给它们加上环境光和颜色。

HLSL代码如下:

 compile ps_1_1 PixelShaderFunction();
}
}

当然粒子的代码也要改啊

下面是新的代码:

    在粒子类中加入字段:public Color color;用于保存粒子的颜色

粒子类的构造方法中加入:

);

随机产生一个颜色。

修改粒子系统的Draw方法:

.Draw(gameTime);
}

最终效果:

XNA 粒子系统入门 XNA 粒子系统入门

从下边和从远处的水平面看到的效果

相关文章: