swift - float SpriteKit

标签 swift floating-point sprite-kit

为什么 SpriteKit 使用 float 作为位置,即使像素不能有小数点?

我正在用 SpriteKit 构建游戏,想知道是否应该将角色位置设为整数以优化它,但不确定是否会有任何性能改进。

是否值得将字符位置转换为整数来优化?

最佳答案

一般来说,在处理位旋转级别以上的图形时,使用 float 比使用整数更简单。请注意,Core Graphics 还使用 float 作为坐标。

它更简单的原因是你想做一些事情,比如缩放(按非整数因子)和旋转坐标、图像、路径等。如果你使用整数,舍入误差会 swift 累积一个明显的数量。如果您使用 float ,舍入误差需要更长的时间才能变得明显 - 通常它们根本不会变得明显。

还要考虑 SKNode 具有 xScaleyScale 属性。如果您放大一个节点,其子节点位置的小数部分会对它们在屏幕上的位置产生很大影响。

您不应将字符位置转换为整数。 SpriteKit 使用 float ,因此您最终需要将它们转换回 float 才能与 SpriteKit 一起使用,CPU 支持 float ,而 GPU 旨在执行大量浮点运算。

关于swift - float SpriteKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26190236/

相关文章:

swift - RGB 值在着色时做奇怪的事情? - swift

c++ - 如何在 C++ 中正确规范化浮点值?

c++ - 不,真的,浮点提升什么时候发生?

ios - 如何允许在 SpriteKit 中使用触摸移动多个图像?

Swift & Firebase - 如何存储除电子邮件和密码以外的更多用户数据?

ios - Swift 3 - MKPointAnnotation 自定义图像

ios - iMessage 扩展中未调用 textView() 方法

c++ - 在 C++ 中除以 2 个 float 会根据使用的方法产生不同的结果

ios - 如何从内存中删除子类化的 SKNode?

xcode - 在 Xcode 中将 numParticlesToEmit 设置为非零时,SKEmitterNode 不起作用?