ios - 如何根据分数更改 SKSpriteNode?

标签 ios swift skspritenode sktexture

我正在尝试编写一个更酷的 Flappy Bird 版本,其中小鸟会根据分数变化为更酷的东西。非常感谢您的帮助。这是声明这只鸟的完整代码。我如何制作一个根据分数更新小鸟的函数?

let birdTexture1 = SKTexture(imageNamed: "bird-01")
birdTexture1.filteringMode = .nearest
let birdTexture2 = SKTexture(imageNamed: "bird-02")
birdTexture2.filteringMode = .nearest

let anim = SKAction.animate(with: [birdTexture1, birdTexture2],     timePerFrame: 0.2)
let flap = SKAction.repeatForever(anim)

bird = SKSpriteNode(texture: birdTexture1)
bird.setScale(2.0)
bird.position = CGPoint(x: self.frame.size.width * 0.35, y:self.frame.size.height * 0.6)
bird.run(flap)

bird.physicsBody = SKPhysicsBody(circleOfRadius: bird.size.height / 2.0)
bird.physicsBody?.isDynamic = true
bird.physicsBody?.allowsRotation = false

bird.physicsBody?.categoryBitMask = birdCategory
bird.physicsBody?.collisionBitMask = worldCategory | pipeCategory
bird.physicsBody?.contactTestBitMask = worldCategory | pipeCategory

self.addChild(bird)

最佳答案

您可以在分数变量的 didSet 函数中创建此行为。

每当您增加(或减少)玩家的分数时,它就会运行。

var score: Int {
    didSet {
        if score > 69 {
            bird.removeAllActions()

            let coolBirdTexture1 = SKTexture(imageNamed: "coolbird-01")
            coolBirdTexture1.filteringMode = .nearest
            let coolBirdTexture2 = SKTexture(imageNamed: "coolbird-02")
            coolBirdTexture2.filteringMode = .nearest

            let anim = SKAction.animate(with: [coolBirdTexture1, coolBirdTexture2], timePerFrame: 0.2)
            let flap = SKAction.repeatForever(anim)

            bird.texture = coolBirdTexture1
            bird.run(flap)
        }
    }
}

关于ios - 如何根据分数更改 SKSpriteNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45527090/

相关文章:

ios - Swift:根据行数推送Label下的Objects

ios - 我可以从 API 获取日期,但是当我填充单元格时,我的计数为零

swift - 随机化节点移动持续时间

ios - 如何在观看之前准备内容?

ios - 从弹出 ViewController Swift 继续

ios - 有没有办法在 for..in 循环中检查 NSArray 中的下一个对象?

ios - 数据更改后刷新 View

ios - 在 SearchBar/TextField iOS Swift 中设置文本样式

swift - 从场景中移除后如何停止 SKSpriteNode 的音频(Swift)?

sprite-kit - SKLightNode 转换阴影问题