2015-10-16 25 views
3

我只想知道爲什麼這些SKShapeNode這樣表現。我嘗試將sprite.lineWidthsprite.glowWidth設置爲0,但無法讓它們均勻顯示。但是,使用UIColor.redColor()顯示它們時,不會發生這種情況。SKShapeNode爲什麼在頂部邊界更亮

另外,在另一個說明中,您無法真正看到這些圖片的效果,但是當我在iPhone上模擬它們時,顏色不會正確混合。在較暗的顏色上很難看到,而在對比色(紅色和黃色)上很容易看到。

enter image description here enter image description here

你可以看到頂部邊框比底部稍亮,因此可以清楚地分辨出箱。我如何讓它們看起來更「流暢」?這是代碼Im使用:

var x: CGFloat = 0.0 
    var skip: CGFloat = 10 
    var randR: CGFloat = 242 
    var randG: CGFloat = 218 
    var randB: CGFloat = 242 

    class GameScene: SKScene { 
override func didMoveToView(view: SKView) { 
    /* Setup your scene here */ 

} 

func randomColor() -> CGFloat { 

    return (CGFloat(arc4random_uniform(255))) 

} 


override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    /* Called when a touch begins */ 

    let spriteHeight: CGFloat = 50.0 


    for touch in touches { 
     let location = CGPoint(x: (CGRectGetMidX(self.frame)), y: (CGRectGetMinY(self.frame) + CGFloat(spriteHeight * x))) 
     let sprite = SKShapeNode(rectOfSize: CGSizeMake((self.frame.width), 50)) 
     //sprite.fillColor = UIColor.redColor() 
     sprite.position = location 
     sprite.lineWidth = 0 
     //sprite.glowWidth = 0 
     randR = randR - skip 
     randG = randG - skip 
     randB = randB - skip 
     sprite.fillColor = UIColor(red: CGFloat((randR)/256), green: CGFloat((randG)/256), blue: CGFloat((randB)/256), alpha: 1.0) 
     x++ 
     self.addChild(sprite) 
    } 
} 

回答

4

你所看到的不是「真實的」。測量顏色值,你會發現你所觀察的不是客觀現實,而是你的大腦試圖理解世界的一種表現。

https://en.wikipedia.org/wiki/Mach_bands

+1

@C。瓦格納確認:http://i.imgur.com/Gkv24r7.gifv – WangYudong

+1

謝謝傑西。王宇東也是這麼做的。在這裏,我懷疑我的編程。再次感謝! –

相關問題