У меня проблема с двумя действиями, оба из которых - переход к действиям, который перемещает фигуры в пустую позицию узла (для файла sks добавляются пустые узлы). Проблема возникает не всегда, иногда, в первом случае, когда игрок достигает loc: 25 означает, что выигрывает, он перемещается в позицию пустого узла, но иногда он не перемещается туда, но игра продолжается, и если я сверну игру и открою ее они уже там, где они должны были двигаться раньше.
Вторая проблема, эта проблема более важна, потому что с этим skaction игрок переходит на следующую позицию. Но очень редко он не работает, все работает нормально, но когда он выполняет эту операцию, он полностью останавливается, работает только касание. но если я просто сверну игру и открою ее, она переместится в позицию, а затем игра будет работать нормально. Нет проблем, как это может произойти?
Я запускаю второй skaction с последовательностью с двумя другими действиями и первым с действием skspritenode.run (). и у меня нет устройства iOS, поэтому я тестирую его на симуляторе.
Вот оба SKActions, в которых я использую одно и то же, ничего нового:
for node in children {
if (node.name == String(nextSpace)) {
let moveAction:SKAction = SKAction.move(to: node.position, duration: 0.5)
moveAction.timingMode = .easeOut
let wait:SKAction = SKAction.wait(forDuration: 0.1)
let runAction:SKAction = SKAction.run({
if (self.movesRemaining == 1) {
self.KillHim(self.whosTurn, nextspace: nextSpace)
}
self.movesRemaining = self.movesRemaining - 1
self.setThePlayerSpace(space: nextSpace, player:self.whosTurn)
self.movePiece()
})
if whosTurn == .Player1 {
touchedNode.run(SKAction.sequence([moveAction, wait, runAction]))
} else {
playerPiece.run(SKAction.sequence([moveAction, wait, runAction]))
}
}
}
код для перемещения, когда игрок выиграл:
if (currentSpacePlayer1Piece1 == 25) {
let loc:SKNode = childNode(withName: "c1")!
Player1Piece1.run(SKAction.move(to: loc.position, duration: 0.2))
currentSpacePlayer1Piece1 = 26
OneMoreMove += 1
} else if (currentSpacePlayer1Piece2 == 25) {
let loc:SKNode = childNode(withName: "c2")!
Player1Piece2.run(SKAction.move(to: loc.position, duration: 0.2))
currentSpacePlayer1Piece2 = 26
OneMoreMove += 1
}
это могло произойти из-за использования его в симуляторе?