spritekit 游戏中的动态贝塞尔绘图 - 最佳(性能)方法?
Posted
技术标签:
【中文标题】spritekit 游戏中的动态贝塞尔绘图 - 最佳(性能)方法?【英文标题】:Dynamic Bezier drawing in a spritekit game - Best (performance) approach? 【发布时间】:2014-08-08 22:51:54 【问题描述】:我不是 ios 开发者,我刚开始实现我的游戏,我已经在 flash 中完成了,希望使用原生环境会超级快。
该项目是一个 2d 游戏,有很多基于用户交互的动态贝塞尔绘图。基本上我绘制动态斑点(变形虫类型的形状)。
首先我尝试了 Swift,它与 actionscript 非常相似,但事实证明,Apple 将无法接受在 Xcode6 最终版本之前使用 Swift 构建的应用程序,因为我想在 9 月之前发布我的游戏,所以我去了目标C路线。
由于集成了物理引擎、精灵层次结构等,我想使用精灵套件。
我尝试使用SKSphapeNode进行绘图,但我很快意识到,它不适合我的需要。 (如果超过 2 个像素,则无法绘制笔画,它有内存泄漏等)
所以我使用了放入 UIImage 的 UIBezierPath,但我对性能不满意,因为我必须使用新的动态生成的贝塞尔形状创建新的 UIImage。
这些是我目前找到的选项:
-
SkShapeNode - 不适合我的游戏
UIBezierPath - UIImage > 我必须每帧创建一个新的 UIImage,所以速度很慢
OpenGL - 我还没有尝试过,我不确定它是否可以与 Sprite 套件一起使用
CALayer - 目前我正在尝试将它与 spritekit 集成,但我感觉我会遇到与 UIImage 方法相同的问题。
有没有人知道,提示哪种方法在性能方面是最好的?
提前感谢您的帮助!
【问题讨论】:
虽然我从未制作过 iOS 应用程序,但我想说,作为开发人员,您有责任尝试所有四个并找出哪个最好。然后可能还会写博客。 嗯,过去 20 年我做了很多游戏和应用程序,但不是使用原生 iOS SDK,所以我对我的职责非常熟悉 Mike,但还是感谢你提醒我: ) 我猜当我完成游戏后,我也应该和你分享收入? ;) 别傻了(除非你真的想分享收益;)。但是,*** 常见问题解答确实明确说明了有关“我应该做什么?”的问题。是不好的问题。通常他们会被关闭(这是预先提供的“关闭这个,因为......”的原因之一)。不管有没有20年的经验,建议还是一样的。尝试一切=) 【参考方案1】:我尝试使用 SpriteKit 创建闪电效果,请查看我的文章:https://andreygordeev.com/2014/11/01/lightning-with-srite-kit.html
有些方法使用UIBezierPath
,所以你可能觉得它有用。
【讨论】:
谢谢你,Andrey,我查看了你的博客,非常有用。感谢您的帮助。 很遗憾博客现在离线 @RanaTallal 这里是源代码:github.com/andrew8712/SpriteKitLightning-Swift 该页面也可以在这里找到:andreygordeev.blogspot.ru/2014/11/sprite-kit-lightning.html以上是关于spritekit 游戏中的动态贝塞尔绘图 - 最佳(性能)方法?的主要内容,如果未能解决你的问题,请参考以下文章