我正在为我们的学生游戏编写一个粒子系统,而且我遇到了一些障碍。我想改善对火箭的影响,但我似乎无法弄清楚如何。
这是效果在固定船上的效果:
以下是它在移动船上的样子:
我希望火焰始终保持相同的长度。这是Particle
的{{1}}函数:
Tick
提前致谢。
编辑:为了清理一下,我希望效果能够跟踪,但无论发射器的速度如何,我都希望它能以相同的方式跟踪。
答案 0 :(得分:6)
你根据父船的速度让粒子移动得更快或更慢,但它们的生命周期是一定的,你减1,直到你达到零,对吗?
您可能想要做的是将生命周期设置为距离值,而不是一定数量的刻度。然后,从生命周期中减去船舶的速度(或者你在每个蜱上添加到每个粒子的任何东西)。当寿命变为负值时,杀死粒子。
我认为这就是你想要的......但如果对你的算法进行两处修改,它可能会更酷(也更实际):
如果粒子,当前行为(尾部的长度)是正确的 从发动机出来的速度是基于推力(加速度 而不仅仅是速度)。
一旦粒子离开发动机,速度/方向的任何变化 这艘船对它没有影响。一旦粒子被发射出来,就会有速度 和方向是不变的,直到它消失。这应该是 当你翻船时,看起来很酷,或者变化很大 加速度。
干杯。
答案 1 :(得分:0)
如果您希望它具有一致的长度,那么您需要通过将其除以父级的速度来标准化父级的速度。显然,如果父母坐着不动,这将无法工作,因此在这种情况下你需要某种“空闲”状态的粒子(随机锥形分布或其他)。
此外,仅在构造函数中获取速度,并在刻度期间继续使用它。
答案 2 :(得分:0)
系统中是否有随机变量?每个发射器的粒子数,粒子寿命等?这将导致小径变化。