gpt4 book ai didi

ios - 为什么在我的 SpriteKit 游戏中,移动逻辑不同?

转载 作者:行者123 更新时间:2023-11-29 00:50:13 24 4
gpt4 key购买 nike

我有一个角色。在屏幕上点击我运行这个:

for touch in touches {
let location = touch.locationInNode(self)

print(location.x)
print("Pos \(self.magician.position.x)")
if location.x >= self.magician.position.x {
print("R")
self.movingRight = true
} else {
print("L")
self.movingLeft = true
}
}

因此,逻辑是:如果 location.x 大于我的角色 position.x,那么这意味着我点击了右侧,我的角色必须朝这个方向移动,向右移动。但是我不知道为什么当我点击右侧时它会向左侧移动。

谁能解释一下,为什么 SpriteKit 中的逻辑如此不同?

最佳答案

我认为您的角色是 SKSpriteNode 的子类并且此代码在您角色的代码中运行是否正确?

touch.locationInNode(self)

这将返回给定节点(自身)坐标系中的触摸。因此,如果您的角色的 anchor 是 (0.5, 0.5),即节点的中间,那么如果您触摸右侧,则 location.x 将为正,如果触摸左侧,则为负。

这与角色的 x 和 y 位置的比较取决于场景的 anchor ,但您的问题来自于尝试比较来自 2 个不同坐标系的 x 值。

关于ios - 为什么在我的 SpriteKit 游戏中,移动逻辑不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38201266/

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