Ios 玩家精灵在精灵套件中不断滑动 override func touchsbegind(touch:Set,带有事件:UIEvent?){ 让我们先接触 让positionInScene=touch!。位置(in:self) 让touchedNode=self.atPoint(positionInScene) 如果let name=touchedNode.name{ 如果name==“jumpbutton”&&isReady==true{ isReady=false 让boost=SKAction.applyImpulse(CGVector(dx:0,dy:300.0),持续时间:0.1) touchedNode.run(按钮消息) 玩家?快跑(助跑) let wait=SKAction.wait(持续时间:1.2) 运行(等待){[self]in isReady=true } 打印(“跳转按钮”) }

Ios 玩家精灵在精灵套件中不断滑动 override func touchsbegind(touch:Set,带有事件:UIEvent?){ 让我们先接触 让positionInScene=touch!。位置(in:self) 让touchedNode=self.atPoint(positionInScene) 如果let name=touchedNode.name{ 如果name==“jumpbutton”&&isReady==true{ isReady=false 让boost=SKAction.applyImpulse(CGVector(dx:0,dy:300.0),持续时间:0.1) touchedNode.run(按钮消息) 玩家?快跑(助跑) let wait=SKAction.wait(持续时间:1.2) 运行(等待){[self]in isReady=true } 打印(“跳转按钮”) },ios,swift,xcode,sprite-kit,Ios,Swift,Xcode,Sprite Kit,我知道这是非常模糊的,但我的玩家精灵只是随机地开始逐渐向右或向左滑动,没有明显的原因。当我应用如上所示的垂直冲动时,这种情况尤其普遍。任何洞察或帮助都是非常感谢的。此外,身体类型是边界矩形,因为它似乎发生得比使用al时少pha遮罩或边界圆。结果是我的图像没有正确裁剪,因此导致我的玩家精灵滑动。我会检查玩家所在的节点是否没有轻微旋转,并且它也是一个边界矩形。在玩家和地面上,将physicsbody.allowrotation设置为false。如果在播放时发生这种情况er处于空闲状态时,您可以创建一

我知道这是非常模糊的,但我的玩家精灵只是随机地开始逐渐向右或向左滑动,没有明显的原因。当我应用如上所示的垂直冲动时,这种情况尤其普遍。任何洞察或帮助都是非常感谢的。此外,身体类型是边界矩形,因为它似乎发生得比使用al时少pha遮罩或边界圆。

结果是我的图像没有正确裁剪,因此导致我的玩家精灵滑动。

我会检查玩家所在的节点是否没有轻微旋转,并且它也是一个边界矩形。在玩家和地面上,将physicsbody.allowrotation设置为false。如果在播放时发生这种情况er处于空闲状态时,您可以创建一个函数,在该函数中,如果没有按下任何按钮,playerr应该静止不动,您可以将其速度设置为0(这是一个解决方法,因为我想问题的根本原因仍然存在)。还有physicsBody.friction,您可以更改此值。没问题。如果/当您解决了问题时,最好将解决方案放入答案中,以便在将来帮助其他人。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    let touch = touches.first
    let positionInScene = touch!.location(in: self)
    let touchedNode = self.atPoint(positionInScene)

    if let name = touchedNode.name {
        if name == "jumpbutton" && isReady == true {
            isReady = false
            
            let boost = SKAction.applyImpulse(CGVector(dx: 0, dy: 300.0), duration: 0.1)
            
            
            touchedNode.run(buttonPressAction)
            player?.run(boost)
            
            let wait = SKAction.wait(forDuration: 1.2)
                           run(wait) { [self] in
                             isReady = true
                           }
                print("jumpbutton")
            }