gpt4 book ai didi

ios - SKAction 等待完成

转载 作者:行者123 更新时间:2023-11-30 13:34:56 25 4
gpt4 key购买 nike

我正在制作一个 SpriteKit 游戏,我正在尝试让 SKCameraNode 跟随玩家节点。但是,当我在使用 SKAction 移动玩家节点后访问其位置属性时,运行该 Action 后的位置与运行该 Action 之前的位置相同。这是我的场景代码:

func updateMap(playerX: Int, playerY: Int) {
player.coordinates = CGPoint(x: highlightedTile.tileX, y: highlightedTile.tileY)
camera?.position = player.position
}

以及我的 player 类中的代码:

var coordinates: CGPoint {
didSet{
let moveAction = SKAction.moveTo(CGPoint(x: (coordinates.x) * 64 - 64, y: (coordinates.y) * 56 - 47), duration: NSTimeInterval(2.0))
self.runAction(moveAction)
}
}

在操作完成之前,SpriteKit 不会更新玩家节点的 position 属性。因此我想等到动画完成后再更新相机位置。如何做到这一点?

最佳答案

您正在移动完成之前查询position属性...

试试这个:

print(playerNode.position)

let moveAction = SKAction.moveTo(CGPoint(x: (coordinates.x) * 64 - 64, y: (coordinates.y) * 56 - 47), duration: NSTimeInterval(2.0))
let waitAction = SKAction.waitForDuration(NSTimeInterval(3))

self.runAction(moveAction, completion: {
print(playerNode.position)
})

另请注意,我使用 playerNode 变量,它应该代表玩家。但不确定您的情况中的 self 是什么(玩家或场景)。

关于ios - SKAction 等待完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36189847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com