SpriteKit 中的液体飞溅

电的

假设某种类型的敌人可能会爆炸,并且液体(血液/酸)可能会击中附近的物体:玩家、敌人、盒子……


在 Fruit Ninja splatter 进入背景,这很容易。在这里它在多个方面进行,但不在 Z 轴上,因为它是一个 2D 游戏。


有没有一种简单的方法可以在这些物体上产生随机液体飞溅?

抄送

不,没有“简单的方法”,主要是因为它如何运作以及它如何影响游戏并不能完全概括。例如,血液击中玩家意味着什么?它会改变一个精灵吗?一堆分层的精灵?一个精灵表?血液是永久的还是暂时的?它是累积的,还是只是“血腥或不血腥”?它击中目标的角度重要吗?如果它没有击中目标怎么办 - 穿过它的玩家会开始留下血腥的脚印吗?等等。

如果您想要这样的功能,您几乎肯定必须对其进行自定义编码。

我可能会做的是用随机生成的血液飞溅精灵生成一堆类似粒子的精灵对象,将它们从源头调整角度,并使用 SKActions 或物理将它们设置为远离源头的动画。然后我会检查它们是否与我希望它们能够与之交互的任何屏幕元素发生碰撞,当发生这种情况时,我会杀死精灵并向血腥的东西发送消息,然后做我需要做的任何事情为了响应该事件,使被击中的对象看起来像是被流血了,就像将“干净”的精灵表换成“流血的”精灵表一样。如果精灵在完成动画之前没有击中某物,那么我会将它留在它着陆的地方。

一个更便宜、更简单的解决方案是使用 SpriteKit 粒子系统简单地触发一堆血液粒子,并在场景中添加一个随机的圆形“血溅”图像。然后,您只需检查该半径内是否有任何东西,如果是,则称其为血腥。这将需要有足够的血液粒子才能让它看起来像任何靠近的东西都会被溅到一样,但这比跟踪单个粒子和检测碰撞要简单得多。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章