使用spritekit的iOS动画
我正在尝试使用spritekit在iOS应用程序上创建动画 到目前为止,我为此所做的代码是使用spritekit的iOS动画,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我正在尝试使用spritekit在iOS应用程序上创建动画 到目前为止,我为此所做的代码是 import UIKit import SpriteKit import GameplayKit class TygaScene: SKScene { var tygaFrames: [SKTexture]? // array of images required init?(coder aDecoder: NSCoder) { super.init(co
import UIKit
import SpriteKit
import GameplayKit
class TygaScene: SKScene {
var tygaFrames: [SKTexture]? // array of images
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(size: CGSize) { // init function then set size
super.init(size: size)
self.backgroundColor = UIColor.white // setting colour to background
var frames:[SKTexture] = [] // create place holder for texture to initialise
let tygaAtlas = SKTextureAtlas(named: "tyga")
for index in 1...5 { // adding all images from folder
let textureName = "tyga_\(index)" // naming the first bit of the file
let texture = tygaAtlas.textureNamed(textureName)
frames.append(texture)
}
self.tygaFrames = frames
}
func moveTyga() {
let texture = self.tygaFrames![0]
let tyga = SKSpriteNode(texture: texture)
tyga.size = CGSize(width: 280, height: 280)
let randometygaYPositionGenerator = GKRandomDistribution(lowestValue: 50, highestValue: Int(self.frame.size.height))
let yPosition = CGFloat(randometygaYPositionGenerator.nextInt())
let rightToLeft = arc4random() % 2 == 0
let xPosition = rightToLeft ? self.frame.size.width + tyga.size.width / 2 : -tyga.size.width / 2
tyga.position = CGPoint(x: xPosition, y: yPosition)
if rightToLeft {
tyga.xScale = -1
}
self.addChild(tyga)
tyga.run(SKAction.repeatForever(SKAction.animate(with: self.tygaFrames!, timePerFrame: 0.05, resize: false, restore: true)))
var distanceToCover = self.frame.size.width + tyga.size.width
if rightToLeft {
distanceToCover += -1
}
let time = TimeInterval(abs(distanceToCover/140))
let moveAction = SKAction.run {
tyga.removeAllActions ()
tyga.removeFromParent()
}
let allActions = SKAction.sequence([moveAction, removeAction])
tyga.run(allActions)
}
}
给出错误的部分是行:
let allActions = SKAction.sequence([moveAction, removeAction])
tyga.run(allActions)
}
你能告诉我怎样才能克服这个问题吗
谢谢。有什么错误?在哪里声明removeAction?这是什么呢?正如Ron所提到的,您缺少了
removeAction
的声明,因此您可能在这一行中遇到了编译器错误。但是,即使修复了该编译器错误,SKAction
序列从调用removeAllActions()
开始,然后是removeFromParent()
,这将从场景中删除节点,而不会发生任何事情。