Я сделать игру с SpriteKit, где у меня есть узел, который постоянно движущуюся назад и вперед от левой стороны к правой стороне экрана, используя эту последовательность SKAction:Как использовать .xscale, который запускается в зависимости от пути перемещения узла?
func move(){
let recursive = SKAction.sequence([
SKAction.moveByX(frame.size.width/2.8, y: 0, duration: NSTimeInterval(4),
SKAction.moveByX(-frame.size.width/2.8, y: 0, duration: NSTimeInterval(4),
SKAction.runBlock({self.move()})])
doc.runAction(recursive, withKey: "move")
}
узел является SKTexture, и я использую атлас под названием WalkRight. То, что я пытаюсь сделать, это когда запускается SKAction.moveByX (-frame.size.width/2.8, y: 0, duration: NSTimeInterval (4), я хочу использовать .xscale для поворота моих изображений walkRight. не могу понять, как включить этот код в моей последовательности SKAction.
Ниже приведен код для добавления атласом в случае, если это требуется, чтобы ответить на этот вопрос. использование
//In class
var docWalkingFrames: [SKTexture]!
// general runAction method to make doc walk.
func walkingDoc() {
doc.runAction(SKAction.repeatActionForever(SKAction.animateWithTextures(docWalkingFrames,timePerFrame: 0.3,resize: false,restore: true)),withKey:"walkingInPlaceDoc")
}
//In didMoveToView
//doc animation walk right
let docAnimatedAtlas = SKTextureAtlas(named: "WalkRight")
var walkFrames = [SKTexture]()
let numImages = docAnimatedAtlas.textureNames.count
for var i=1; i<=numImages; i++ {
let docTextureName = "docRight\(i)"
walkFrames.append(docAnimatedAtlas.textureNamed(docTextureName))
}
docWalkingFrames = walkFrames
let firstFrame = docWalkingFrames[0]
doc = SKSpriteNode(texture: firstFrame)
doc.position = CGPoint(x:self.frame.size.width/3.1, y:self.frame.size.height/2)
doc.size = CGSize(width: 220, height: 470)
doc.zPosition = 2
addChild(doc)
walkingDoc()
Спасибо за ответ. Я не могу понять, как запустить проверку, чтобы увидеть, идет ли она влево или вправо. – NickyNick321
@ NickyNick321 вместо использования SKAction в вашей последовательности, используйте функции блока, как то, что вы сделали для self.move. Вы можете различать между левым и правым. – Wraithseeker