如何改变spriteNode的alpha值?

时间:2017-03-23 08:55:42

标签: swift sprite-kit skspritenode skscene

我正在通过执行此操作来更改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,为什么它不起作用我不确定。请帮忙。

1 个答案:

答案 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秒。