SKShapeNode在Swift中的浮点问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SKShapeNode在Swift中的浮点问题相关的知识,希望对你有一定的参考价值。

我目前遇到一个奇怪的浮点问题。有人可以解释吗?

import SpriteKit

let height: CGFloat = 20.0
let width: CGFloat = 150.0

let shapeNode: SKShapeNode = SKShapeNode(rectOf: CGSize(width: width, height: height))
print(shapeNode.frame.size.width, shapeNode.frame.size.height) //152.6999969482422 22.700000762939453
答案

这是您想要的:

import SpriteKit

let height: CGFloat = 20.0
let width: CGFloat = 150.0

let shapeNode: SKShapeNode = SKShapeNode(rectOf: CGSize(width: width, height: height))
shapeNode.isAntialiased = false
shapeNode.lineWidth = 0
print(shapeNode.frame.size.width, shapeNode.frame.size.height) // 150.0 20.0

记住:https://developer.apple.com/documentation/spritekit/skshapenode

...是在运行时动态栅格化形状以产生清晰的细节和平滑的边缘。

以上是关于SKShapeNode在Swift中的浮点问题的主要内容,如果未能解决你的问题,请参考以下文章

将手势识别器添加到SKShapeNode Swift 4

绕过子类中的Initialization:Swift和SpriteKit

使用 Swift 子类化 SKShapeNode

Spritekit Swift SKShapeNode 未出现

适用于 iOS 7.1 的带有 swift 的 SKShapeNode

检测 SKShapeNode 上的触摸是一条线