我有一个SKSpriteNode我希望在它的边缘有蓝色光晕以突出显示目的.我猜我需要让我的精灵成为a的孩子,SKEffectNode然后创建/应用某种过滤器.
更新:我已经使用所选答案的方法调查了这一点,并发现SKEffectNode即使你已经设置为shouldRasterize"无过滤器"定义,它也会有相当大的性能.我的结论是,如果你的游戏一次需要10个以上的移动物体,SKEffectNode即使是光栅化也不会涉及到它们.
我的解决方案可能涉及预渲染的发光图像/动画,因为SKEffectNode不会根据我的要求削减它.
如果有人对我失踪的任何事情有所了解,我会很感激你所知道的一切!
我接受了答案,因为它确实实现了我的要求,但是想要将这些笔记添加到任何想要走这条路线的人,这样你就可以了解使用中的一些问题SKEffectNode.
我正在使用Sprite Kit 制作一个" Achtung die kurve ".对于不断移动的线/玩家,我正在使用A CGMutablePathRef和SKShapeNode.在更新方法中,我正在这样做
// _lineNode is an instance of SKShapeNode and path is CGMutablePathRef
CGPathAddLineToPoint(path, NULL, _xPos, _yPos);
_lineNode.path = path;
Run Code Online (Sandbox Code Playgroud)
添加到该行.更新方法还在不断更新_xPos和_yPos以使其增长.
我想我真正要问的是有另一种更有效的绘制线条的方法,因为我现在这样做的方式现在会在一段时间后(大约15-20秒)将帧速率降低太多.此时FPS不断下降,直到游戏无法播放.时间分析器告诉我这一行:_lineNode.path = path是FPS丢弃的原因.
谢谢你的帮助!非常感谢.
PS.我试图不使用SKShapeNode,因为他们似乎无法画得太好(曲线中的小孔/文物等)
截图:
