Swift 中 SKShapeNode 的浮点问题

Floating point issue with SKShapeNode in 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\n

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

... is that shapes are rasterized dynamically at runtime to produce crisp detail and smoother edges.