【问题标题】:How to add score to SpriteKit using SKAction如何使用 SKAction 为 SpriteKit 添加分数
【发布时间】:2015-09-21 12:13:21
【问题描述】:
runAction(SKAction.repeatActionForever(
   SKAction.sequence([
    SKAction.runBlock(addScore),
      SKAction.waitForDuration(1.0) ]) ))        

func addScore() {
        let scoreSprite = SKSpriteNode(imageNamed: "scoreSprite")

        let actualY = random1(min: scoreSprite.size.height/2, max: size.height - scoreSprite.size.height/2)

        scoreSprite.position = CGPoint(x: size.width + scoreSprite.size.width/2, y: actualY)

        self.addChild(scoreSprite)

        let actualDuration = random1(min: CGFloat(0.5), max: CGFloat(0.5))
        let actionMove = SKAction.moveTo(CGPoint(x: -scoreSprite.size.width/2, y: actualY), duration: NSTimeInterval(actualDuration))

        let actionMoveDone = SKAction.removeFromParent()
            scoreSprite.runAction(SKAction.sequence([actionMove, actionMoveDone])) }

好的,所以我希望玩家每玩游戏一秒,我的分数就会增加 1。我研究过使用 NSTimeInterval,但据我所知,更好的选择是使用 SKAction。我能想到的唯一方法是使用几乎清晰的精灵并每秒在屏幕上移动它。我想知道的是如何在每次节点在屏幕上移动时增加分数,或者如果这不好,那么更好的选择是什么。我用来移动节点的代码在上面。提前致谢。

【问题讨论】:

    标签: swift sprite-kit skaction


    【解决方案1】:

    尝试将此添加到您的 didMoveToView 方法中

    let wait = SKAction.waitForDuration(1.0)
    let incrementScore = SKAction.runBlock ({
        ++self.score
        self.scoreLabel.text = "\(self.score)"
    })
    
    self.runAction(SKAction.repeatActionForever(SKAction.sequence([wait,incrementScore])))
    

    【讨论】:

      【解决方案2】:

      我通过将它添加到 scoreSprite 函数的末尾来修复它:

          if scoreSprite.position.x > endOfScreenLeft {
              updateScore()
          }
      

      然后这样做来更新分数:

      func updateScore() {
              score++
              scoreLabel.text = String(score)
          }
      

      屏幕左边是一个 CGFloat:

      endOfScreenLeft = (self.size.width / 2) * CGFloat(-1)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-08
        • 2014-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多