Answers:
那么我将如何去创造这种效果呢?我们是在谈论像素着色器,混合模式/滤镜,位图效果,粒子系统,还是什么?并非特定于平台。我只是在寻找理论,但是具体的例子或链接会很棒。细节越多越好。
上述所有的。
除非您查看他们的源代码,否则您可能无法确切知道他们是如何做到的。
不过,从两场比赛的外观上来看,两者有什么似乎是连接和小径船几何。不一定是基本的点精灵粒子系统,但这也不是那么困难。
有些游戏会使用曲线算法,并从中生成一个顶点列表,并在轨迹的两个端点处应用不同的纹理进行一些纹理化处理,以便在某一点排气看起来很热,而在另一点排气更凉爽,进入太空。
玩家的飞船是一个有趣的情况,因为其运动是不可预测的,您可能需要更新曲线算法的控制点,或者最终对最新的飞船位置进行采样并基于此生成顶点位置。
如果您想获得一些无法控制的功能,请看一下先前问题中的答案。不过,根据您的需要,对玩家位置进行采样可能会更好,并且更容易理解。
这让您思考:
开始采样玩家的位置。这些点将构成路径的主体段,可从中构建几何体。保持具有单独纹理的单独尾段是一个好主意。您可能想要检测玩家何时转弯并增加这些分段的频率,否则最终将出现块状曲线。除非那是你想要的效果:)
在某些情况下,需要停止生成片段,而现有片段应从最靠近尾巴的身体片段(而不是尾巴本身)开始缓慢缩小比例。这是在播放器速度变慢的情况下。但是,如果按比例缩小航段的速度与玩家的飞船速度相匹配,则在取出时会及时形成一个新的航段。因此,这对于全动的船也很有效。步道的长度将始终相同-这将提供流畅一致的溪流。
在头段应始终以玩家的当前位置。如果检测到任何转弯,则将现有头部段添加到主体段,然后开始新的头部段。重复。根据您的纹理,每个片段也可能具有最大长度。
这给我们提供了一种简单的方法来模拟这种效果:摆脱了这种想法:除非提供更多的片段,否则效果将始终会自行减小/缩小;然后以一定的速度进行尝试以防止其缩小。
创建这样的线索有很多不同的可能性。您可以使用简单的线,多边形,点云等。
它们通常都基于以下两个概念之一:
第一种方法更适合于诸如导弹之类的东西,而第二种方法则更适合于跟随某物(例如龙的尾巴)的某种附着物。
发动机尾部的简单实现并不复杂。您只需要一些缓冲区即可存储以前的位置。我不知道您使用的是哪种语言,但是为此,我要么使用环形缓冲区,要么使用某种类似的缓冲区(在末端进行快速删除和插入)。
每个第x帧/更新刻度(您不必每秒执行数百次),实际上是将最旧/最后一个元素放在缓冲区中,并将当前位置添加到其前面(仅当缓冲区已满时;确保它始终包含n个元素,其中n决定尾巴的长度)。
然后,在绘制过程中,您只需从当前位置开始,并通过缓冲区中的所有点绘制一组线,同时降低每个其他顶点的不透明度。
这样,您应该得到一个漂亮干净的尾巴。根据您的平台,您可以扩展此范围,例如使用着色器或沿该路径包装一些漂亮的尾部图形。