Я создал тестовую сцену, чтобы попрактиковаться в некоторых простых Swift 3 и SpriteKit. Я пытаюсь учиться, понимая основы, прежде чем переходить к более сложным целям.Перемещение SKLabelNode. Но действие не повторяется
Здесь у меня есть SKLabelNode, который создается, а затем перемещается влево. Я создал последовательность для повторения действия, но это не сработает. Пожалуйста, не могли бы вы помочь мне понять, где это не удается. NodeCount отмечает, что существует только один узел.
import SpriteKit
import GameplayKit
class GameScene: SKScene {
var testShape = SKLabelNode()
override func didMove(to view: SKView) {
func createShape() {
testShape = SKLabelNode(text: "TEST")
testShape.position = CGPoint(x: 0.5, y: 0.5)
testShape.zPosition = 1
addChild(testShape)
}
let moveTestShape = SKAction.moveBy(x: -500, y: 0, duration: 5)
func repeater() {
createShape()
testShape.run(moveTestShape)
}
let delay = SKAction.wait(forDuration: 2)
let repeatingAction = SKAction(repeater())
let sequence = SKAction.sequence([ delay, repeatingAction ])
run(SKAction.repeatForever(sequence))
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
}
override func update(_ currentTime: TimeInterval) {
}
}
Как это даже компиляциям? Вы должны кричать здесь: 'let repeatationAction = SKAction (repeatater())' В любом случае, вы хотели бы использовать 'SKAction.run (повторитель)', поскольку ваша функция является внутренней функцией. – Knight0fDragon