1
我是Sprite Kit的新手,我想用它來實現一個簡單的遊戲。我想知道這是否可能在雪碧套件:Sprite Kit中的混色
假設我畫兩個圈,一個在紅,另一個在綠色。這兩個圓圈之間有重疊區域,我希望此區域的顏色可以自動設置爲RED + Green =黃色,有點像下圖。
使用Sprite Kit可以這樣做嗎?如果可能的話,如何設置它?
任何回覆非常感謝!
我是Sprite Kit的新手,我想用它來實現一個簡單的遊戲。我想知道這是否可能在雪碧套件:Sprite Kit中的混色
假設我畫兩個圈,一個在紅,另一個在綠色。這兩個圓圈之間有重疊區域,我希望此區域的顏色可以自動設置爲RED + Green =黃色,有點像下圖。
使用Sprite Kit可以這樣做嗎?如果可能的話,如何設置它?
任何回覆非常感謝!
可以連同blending mode玩SKEffectNode:
class GameScene:SKScene{
override func didMoveToView(view: SKView) {
let effect = SKEffectNode()
//Creating shapenodes
let shape1 = SKShapeNode(circleOfRadius: 50)
shape1.fillColor = SKColor.redColor()
shape1.strokeColor = SKColor.clearColor()
shape1.zPosition = 1
shape1.blendMode = SKBlendMode.Add
let shape2 = SKShapeNode(circleOfRadius: 50)
shape2.fillColor = SKColor.greenColor()
shape2.strokeColor = SKColor.clearColor()
shape2.zPosition = 2
shape2.blendMode = SKBlendMode.Add
let shape3 = SKShapeNode(circleOfRadius: 50)
shape3.fillColor = SKColor.blueColor()
shape3.strokeColor = SKColor.clearColor()
shape3.zPosition = 3
shape3.blendMode = SKBlendMode.Add
//Positioning
shape1.position = CGPoint(x: CGRectGetMidX(frame), y: CGRectGetMidY(frame))
shape2.position = CGPoint(x: shape1.position.x - 25, y: shape1.position.y - 50)
shape3.position = CGPoint(x: shape1.position.x + 25, y: shape1.position.y - 50)
effect.addChild(shape1)
effect.addChild(shape2)
effect.addChild(shape3)
self.addChild(effect)
}
}
結果:
這正是我想要的!謝謝! –
還有一個問題。不是用純色填充圓形,如果我填充了彩色紋理(例如帶有紅色和綠色圖案的png圖片),是否有無法達到類似的效果? –
@HunTerDRF是的,你可以使用SKSpriteNode並用紋理初始化它。 – Whirlwind