gpt4 book ai didi

swift - 如何获取自上一帧以来我的 Sprite 的 x 移动量?

转载 作者:行者123 更新时间:2023-11-30 10:06:24 25 4
gpt4 key购买 nike

我有一个会移动的 Sprite ,我正在寻找一种方法来获取自上一帧以来的 x 移动量。这样新的位置就被更新并且下一帧的x移动量是可用的。有人知道我该怎么做吗?

我知道我可以写:

override func update(currentTime: NSTimeInterval) {

print(player.position.x)

}

获取当前的x位置。

最佳答案

向您的类添加一个变量,例如var lastPlayerPosition: CGPoint?

在更新 block 中,获取玩家当前位置,将其与lastPlayerPosition进行比较,然后更新lastPlayerPosition。

然后比较 CGPoints 以获得移动的距离。

var xDistance: CGFloat = 0.0
var distance: CGFloat = 0.0
var lastPlayerPosition: CGPoint?

override func update(currentTime: NSTimeInterval) {

if self.lastPlayerPosition == nil {
self.lastPlayerPosition = player.position
return
}

xDistance = fabs(Float(self.lastPlayerPosition.x) - Float(player.position.x))
distance = hypotf(Float(self.lastPlayerPosition.x) - Float(player.position.x),
Float(self.lastPlayerPosition.y) - Float(player.position.y))

print("lastPosition.x: \(self.lastPlayerPosition?.x) | player.position.x: \(player.position.x)")
print("xDistance: \(xDistance) | distance: \(distance)")
self.lastPlayerPosition = player.position
}

关于swift - 如何获取自上一帧以来我的 Sprite 的 x 移动量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35728170/

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