我正在通过执行此操作来更改spriteNode的alpha值。以下是我的代码。
if (firstBody.node?.name)! == "Player" && secondBody.node?.name == "Alpha 1" {
var item: SKSpriteNode?;
item = SKSpriteNode(imageNamed: "BG");
item!.alpha=0.1;
score += 1;
scoreLabel?.text = String(score);
}
这就是它在文档中所说的,使用node.alpha = value,为什么它不起作用我不确定。请帮忙。
答案 0 :(得分:1)
你可以通过使用动作淡化alpha,我在下面留下了一个例子。
class GameScene: SKScene {
var player: SKSpriteNode!
override func didMove(to view: SKView) {
player = SKSpriteNode(color: .purple, size: CGSize(width: 100, height: 100))
player.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
self.addChild(player)
}
func fadePlayer() {
let fadeAlpha = SKAction.fadeAlpha(to: 0.1, duration: 1.0)
self.run(fadeAlpha)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
fadePlayer()
}
}
当触摸开始时,SpriteNode将淡出为您插入的alpha值,它会在您插入持续时间的过程中逐渐淡出。此操作将SpriteNode的alpha逐渐淡化为0.1秒。