更改SKSpriteNode的颜色属性不会改变其颜色
问题描述:
我正在加载最初为我的某些精灵呈现红色的纹理。不过,我想改变这种颜色为白色,通过我的方法loadPauseIcons():更改SKSpriteNode的颜色属性不会改变其颜色
func loadPauseIcons() {
let icons = ["HomeIcon", "LevelIcon", "RetryIcon"]
let iconSize = CGSize(width: pauseButton.size.width * 0.6, height: pauseButton.size.height * 0.6)
var iconY = pauseButton.position.y - pauseButton.size.height
for icon in icons {
let currentIcon = SKSpriteNode(imageNamed: icon)
currentIcon.position = CGPoint(x: pauseButton.position.x, y: iconY)
currentIcon.color = .white
currentIcon.size = iconSize
currentIcon.name = icon
currentIcon.zPosition = 11
iconY -= pauseButton.size.height * 0.35 + currentIcon.size.height
self.addChild(currentIcon)
pauseIcons.append(currentIcon)
}
}
这种方法上的SKScene的的touchesBegan()方法运行。不过,我仍然得到一个红色图标:(房子和三个酒吧)
上午我做错了什么改变我的精灵的颜色?
答
尝试增加:
currentIcon.colorBlendFactor = 1.0
缺省情况下一个子画面的colorBlendFactor
是0.0,这意味着它的color
属性被忽略。 colorBlendFactor
的值越接近1.0,精灵的color
属性的应用就越多。
您不能将红色与白色混合,红色的蓝色和绿色值为0,使用白色图标并将颜色更改为红色 – Knight0fDragon
为什么纹理的颜色是什么?它在屏幕上仍然是红色的 – Knight0fDragon