我必须在C#中使用粒子系统制作一个程序,我正在使用Visual Studio 2010.我不能使用任何像OpenGl这样的库,......我只能使用C#中的Graphisc库。我试着阅读一些教程和讲座,但我仍然不知道如何实现它。
有人能帮我理解我应该如何分解我的问题吗?或者直接告诉我一些有用的教程?这对我来说很新,而且我有点卡住了。
我的任务:
从点发生器编程一个喷泉形状的简单发电机发光粒子,将粒子视为在平行投影中在黑色背景上的单个轨道上移动的不同颜色的点。
答案 0 :(得分:1)
查找BackgroundWorker
和RenderTargetBitmap
最好在WPF中执行此操作
Psuedo代码
backgroundWorker()
{
while(isRunning)
{
update()
draw()
}
}
update()
{
for each all particles
{
update gravity and/or relativity to other particles
}
}
draw()
{
clear bitmap
for each all particles
{
draw your particle
}
set it to your container
}
这是基于游戏循环
答案 1 :(得分:1)
虽然不是一个完整的答案,但如果这是我的任务,我将如何解决问题:
Particle
类,可以存储其当前状态(位置,速度,加速度)并可以移动(即SetPosition
,SetVelocity
...)World
类,代表一个三维空间,并跟踪其中的所有粒子。 World
将知道物理定律,并将负责在给定当前状态的情况下移动粒子。 Particle
s。将Particle
添加到World
。 World
将从此后自动更新其位置。World
以图形方式表示其所有Particle
。 编辑:第7步是“在循环中运行第6步”。 noHDD提供的循环代码是一个非常好的基本框架:持续update
世界的状态,然后draw
结果。