gpt4 book ai didi

swift - Xcode Swift SpriteKit SkSpriteNode Y 值没有移动,但 X 值在移动

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

在移动操作中,Y 值没有变化,我不知道为什么,因为 X 值正在变化。 ChangeY 变量正在以正确的值 5.0 或 -5.0 完成其工作,但“玩家”SkSpriteNode 上的 Y 值没有改变。请帮忙。

 override func update(_ currentTime: TimeInterval) {

let percent = touchLocation.x / size.width
let newAngle = percent * 180 - 180
print(newAngle)
if playButtonPressed{

var changeY = 0.0
if newAngle >= -180{
changeY = 5.0
}
else{
changeY = -5.0
}
player.zRotation = CGFloat(newAngle) * CGFloat(M_PI) / 180.0
print(changeY)
var move = SKAction.moveBy(x: -(player.position.x+1), y: CGFloat(changeY), duration: 2000.0)
player.run(move)
}
}

最佳答案

我并不完全清楚你的最终目标是什么,但你的计算似乎是这样的。尤其是这个 Action 的持续时间是2000秒。这超过了 30 分钟(!)x 计算还表明您实际上计划使用 moveTo 而不是像您当前所做的那样使用 moveBy

以下内容基于您的代码,但我不确定您的实际目标是什么:如果触摸位于屏幕的左侧,则向左+向上移动,如果触摸则向下+向右移动触摸位于屏幕的右侧...

override func update(_ currentTime: TimeInterval) {
if playButtonPressed {
let percent = touchLocation.x / size.width
let newAngle = percent * 180 - 180
player.zRotation = CGFloat(newAngle) * CGFloat(M_PI) / 180.0

let moveRightAndUp = touchLocation.x>size.width/2
let changeY: CGFloat = moveRightAndUp ? 5.0 : -5.0
let changeX: CGFloat = moveRightAndUp ? 1.0 : -1.0
let move = SKAction.moveBy(x: changeX, y: changeY, duration: 1/60)
player.run(move)
}
}

关于swift - Xcode Swift SpriteKit SkSpriteNode Y 值没有移动,但 X 值在移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39802133/

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