从 pixelData 创建 SKSpriteNode 时遇到问题。
下面是我的代码。
var pixelData: [UInt32] = [UInt32](count: 256, repeatedValue: 0xff0000ff)
pixelData.appendContentsOf([UInt32](count: 256, repeatedValue: 0xff00ff00))
pixelData.appendContentsOf([UInt32](count: 256, repeatedValue: 0xffff0000))
pixelData.appendContentsOf([UInt32](count: 256, repeatedValue: 0x000000ff))
let data = NSData(bytes: pixelData, length: pixelData.count * sizeof(UInt32))
let texture = SKTexture(data: data, size: CGSize(width: 32, height: 32))
let node = SKSpriteNode(texture: texture, size: CGSize(width: 32, height: 32))
node.position.x = self.frame.midX
node.position.y = self.frame.midY
self.addChild(node)
对于底部的三行(这是 pixelData 数组中的前 3 部分,0xff0000ff
, 0xff00ff00
, 0xffff0000
: Red、Green 和 Blue),它如我所愿。
但是,我希望第一行是完全透明的:0x000000ff
,这应该意味着 rgba(1, 0, 0, 0)。但它看起来像这样:
我不知道为什么会这样。我对pixelData的理解错了吗?或者它是 SpriteKit 中的错误或什么?
非常感谢您的帮助!