我遇到2个动作的问题,两个动作都移到了动作,这会将棋子移动到空节点的位置(从sks文件中添加了空的sknodes)。问题仅在某些情况下并不总是发生,在第一个位置,当玩家到达位置:25表示获胜时,它移至空节点的位置,但有时并没有移至该位置,但游戏仍在继续,如果我最小化游戏并打开它他们已经在那里,他们本来应该搬到那里。
第二个问题更重要,因为随着这个滑行选手移动到下一个位置。但是极少数情况下,它不能正常工作,但一切正常,但是当执行该滑板时,它会完全停止,仅触摸即可。但是如果我只是最小化游戏并打开它,它会移至位置,然后游戏运行正常。没问题,这怎么会发生?
我用序列的其他两个动作运行第二个skaction,使用skspritenode.run()动作运行第一个skaction。而且我没有iOS设备,因此我正在模拟器上对其进行测试。
这是我使用的两个SKAction,只是没有什么新鲜的东西:
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
}
是否可能是因为在模拟器中使用了它?