运行一个包含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()
}
}