为什么SKShapeNode在顶部边框上更亮

时间:2015-10-16 01:13:50

标签: ios swift sprite-kit skshapenode

我只是想知道为什么这些SKShapeNode会以这种方式表现。我尝试将sprite.lineWidthsprite.glowWidth设置为0,但无法让它们均匀显示。但是,当使用UIColor.redColor()将它们全部显示时,不会发生这种情况。

另外在另一个注意事项中,您无法真正看到这些图片的效果,但是当我在iPhone上模拟它们时,颜色不能正确“混合”。在较暗的颜色上很难看到,而在对比色上则更容易看到,即红色和黄色。

enter image description here enter image description here

您可以看到顶部边框比底部略亮,因此可以清楚地区分框。如何让它们显得“更流畅”?这是我使用的代码:

    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)
    }
}

1 个答案:

答案 0 :(得分:4)

你所看到的并不是“真实的”。测量颜色值,你会发现你所观察到的不是客观现实,而是你的大脑试图理解世界的表现。

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