2012-08-10 66 views
1

我正在为2D项目创建SDL的简单粒子系统。我的这一代人的功能很好,我可以创造速度,以及粒子生成的位置。我需要做的是指示移动的方向,例如,像在火箭烟雾中一样。那么如何让粒子系统选择粒子运动的方向呢?如何在二维粒子系统中实现方向?

+0

如果您的意思是使用角度和模量定义每个粒子的速度,只需使用简单的三角函数。 – 2012-08-10 22:53:09

+0

嗯,这可能会奏效,但请您举个例子,对此有点麻烦。 – Annabelle 2012-08-10 22:53:46

+0

我会回答,一会儿。 – 2012-08-10 22:54:03

回答

2

为了给每个粒子的运动方向,选择一个绝对角度(0指向显示的右侧),模量(粒子的速度)并执行这些简单的三角指令:

vel.x = speed*cos(angle); 
vel.y = speed*sin(angle); 

实际指令依赖于基础数据结构,但数学概念是完美的。只要注意角度和使用的功能:两者必须具有相同的角度单位(度,弧度,...)。

+0

谢谢,这是我搞砸了,我可能会选择学位。还要感谢清理速度vs方向的事情。 – Annabelle 2012-08-10 23:00:50

+0

事实上,方向不足以描述速度,但您可以使用额外的速度值。您可能还想尝试向角度添加随机性(例如给出一个固定的角​​度θ和一个变化值var,这样角度总是位于theta-var和theta + var之间。不错,你的粒子系统。 – 2012-08-10 23:02:51

+0

好吧,:)接受! – Annabelle 2012-08-10 23:03:27