【问题标题】:Smoke effect for rocket in sprite kit精灵套件中火箭的烟雾效果
【发布时间】:2014-08-14 11:23:35
【问题描述】:

我正在设计一款游戏,在我的游戏中,火箭发射了。我创建了一个发射器,对其进行了配置,当我的火箭发射时,它会将发射器添加到火箭中。问题是,火箭的移动速度非常快,而且粒子似乎跟随火箭的运动——我的意思是,不是火箭在后面留下烟雾的“轨迹”,而是“烟雾”看起来一样好像火箭不动,我猜是因为它是火箭的孩子。

我想到的唯一解决方法是: - 创建一个 ivar 或属性来保存火箭的当前位置并在每一帧更新它 -当火箭发射时,将发射器的孩子添加到场景中,而不是火箭 -将它的位置放在火箭的位置 - 更新,跟随火箭

但是,这似乎在计算上非常昂贵,检查火箭是否存在,如果存在则获取它的位置,为该位置创建一个新的 CGPoint,并在每一帧上将发射器位置设置为这个新点。此外,它几乎没有在屏幕上同时显示多个火箭的选项。

还有其他更优雅的解决方案吗?

【问题讨论】:

    标签: ios cocoa-touch sprite-kit


    【解决方案1】:

    您需要将发射器的targetNode 属性设置为您希望烟雾停留的SKNodeSKScene。该属性设置发射器粒子将成为其子节点的节点,这样当火箭移动时,发射的粒子会停留在同一位置。

    注意:发射器本身仍应是火箭的子代。

    SKEmitterNode.targetNode docs

    【讨论】:

    • 谢谢,这回答了我的问题。然而,我现在有另一个问题:一旦火箭离开屏幕,我将它从它的父级移除,并从它的父级(即火箭)移除烟雾发射器,为下一个火箭让路,然后是烟雾突然消失。显然这看起来很糟糕,但我明白为什么会这样。我认为没有简单的方法来处理这个新问题?
    • 你能让火箭离屏幕更远吗?给它一个足够长的缓冲区,让线索离开屏幕。
    • @user2391236 不客气。我认为烟雾的新问题足以证明它自己的问题。你能开始一个新的,这样解决方案就不会在这里的 cmets 中丢失了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 2011-01-08
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    相关资源
    最近更新 更多