动画与白框有时Spritekit

时间:2017-01-17 13:47:16

标签: ios swift animation sprite-kit

运行一个包含28帧的动画序列,所有这些都是正确命名的,但是当我运行这个动画时,它时不时(它并不总是在相同的帧中),白色方块会出现几毫秒......

以下是代码:

    var birdAnim1Array = [SKTexture()]
    for i in 0..<28{
        birdAnim1Array.append(SKTexture(imageNamed: "Crossbar_bird1_separated-flight1_\(i).png"))
    }

然后在这个函数中调用它:

func spawnOrNotFlyingNode(){
    let rand = arc4random() % 15

    if rand == 0 {
        //add flying node
        let texture = SKTexture(imageNamed: "Crossbar_bird1_separated-flight1_0.png")

        if #available(iOS 8.0, *) {
            flyingNode = SKSpriteNode(texture: texture)
        } else {
            // Fallback on earlier versions
        }
        flyingNode.setScale(ssscale*0.33)

        flyingNode.position = CGPoint(x: frame.maxX + 150, y: self.frame.size.height*0.9)
        // flyingNode.zPosition = 11
        flyingNode.physicsBody = SKPhysicsBody(texture: texture, size: CGSize(width: flyingNode.size.width, height: flyingNode.size.height))
        flyingNode.physicsBody?.usesPreciseCollisionDetection = true
        flyingNode.physicsBody?.affectedByGravity = false
        flyingNode.physicsBody?.allowsRotation = false
        flyingNode.physicsBody?.isDynamic = false
        flyingNode.physicsBody?.friction = 0
        flyingNode.physicsBody?.categoryBitMask = FlyingNodeCategory
        flyingNode.physicsBody?.contactTestBitMask = BallCategory
        flyingNode.physicsBody?.collisionBitMask = BallCategory
        self.addChild(flyingNode)

        flyingNode.run(SKAction.moveTo(x: -300, duration: 8.0))
        flyingNode.run(SKAction.repeatForever(SKAction.animate(with: birdAnim1Array, timePerFrame: 0.02, resize: false, restore: false)))

        DispatchQueue.main.asyncAfter(deadline: .now() + 8.0) {
            if !self.hitFlying{
                self.flyingNode.removeFromParent()
            }
            self.hitFlying = false
        }

    }

    DispatchQueue.main.asyncAfter(deadline: .now() + 10.0) {
        self.spawnOrNotFlyingNode()
    }
}

0 个答案:

没有答案