SKColor比较无法在iPhone 5s上的模拟器中使用,并且在标准颜色而非自定义颜色下可以使用 [英] SKColor comparison works in simulator not on iPhone 5s, and with standard colors not custom ones

查看:54
本文介绍了SKColor比较无法在iPhone 5s上的模拟器中使用,并且在标准颜色而非自定义颜色下可以使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码在iPhone 5s上失败,这意味着它可以达到else情况,但在模拟器中可以正常工作.如果我们将标准颜色用于红色和蓝色(例如,SKColor.blueColor(),SKColor.redColor()),它也可以正常工作

The following code fails on an iPhone 5s, meaning it reaches the else case, but works fine in the simulator. It also works fine if we use standard colors for red and blue (i.e., SKColor.blueColor(), SKColor.redColor())

    let BlueColor = SKColor(red: 0/255.0, green: 185/255.0, blue: 252/255.0, alpha: 1.0)
    let RedColor = SKColor(red: 250/255.0, green: 50/255.0, blue: 53/255.0, alpha: 1.0)
    let dot = SKSpriteNode(imageNamed: "dot50")

    dot.colorBlendFactor = 1.0
    dot.color = BlueColor

    if (dot.color == BlueColor) {
        println("Blue!")
    } else if (dot.color == RedColor) {
        println("Red!")
    } else {
        println("Nooooo! This shouldn't happen")
    }

任何线索为何?

推荐答案

您是否有特定的原因需要根据它们的颜色来标识这些节点?也许您可以做这样的事情...

Is there a specific reason you need to identify these nodes by their color? Perhaps you could do something like this...

let BlueColor = SKColor(red: 0/255.0, green: 185/255.0, blue: 252/255.0, alpha: 1.0)
let RedColor = SKColor(red: 250/255.0, green: 50/255.0, blue: 53/255.0, alpha: 1.0)
let dot = SKSpriteNode(imageNamed: "dot50")

dot.colorBlendFactor = 1.0
dot.color = BlueColor
dot.name = "BlueNode"

if (dot.name == "BlueNode") {
    foundBlueColor()
    println("Blue!")
} else if (dot.name == "RedNode") {
    foundRedColor()
    println("Red!")
} else {
    println("Nooooo! This shouldn't happen")
}

这篇关于SKColor比较无法在iPhone 5s上的模拟器中使用,并且在标准颜色而非自定义颜色下可以使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆