pixelDataからSKSpriteNodeを作成する際に問題があります。SKTexture(data:size :)から作成されたSKSpriteNodeは、Alpha(不透明度)の問題
以下は私のコードです。
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)
私は(ピクセルデータ配列、0xff0000ff
、0xff00ff00
、0xffff0000
の最初の3つの部分である:赤、緑、青)3つの一番下の行の望むようにそれは行ってきました。
しかし、私は一番上の行が完全に透明であることを期待しました:0x000000ff
これはrgba(1,0,0,0)を意味するはずです。これが起こる理由を私は知らない
:しかし、このとして登場しました。 pixelDataの理解が間違っていますか?それともSpriteKitのバグですか?
ありがとうございました! SKTexture
へピクセルデータを変換するための便利な方法のドキュメントから