Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 重新加载场景后脉冲发生变化_Swift_Sprite Kit_Skspritenode_Skphysicsbody_Skscene - Fatal编程技术网

Swift 重新加载场景后脉冲发生变化

Swift 重新加载场景后脉冲发生变化,swift,sprite-kit,skspritenode,skphysicsbody,skscene,Swift,Sprite Kit,Skspritenode,Skphysicsbody,Skscene,我使用以下代码对SKSpriteNode“char”应用脉冲: randX = arc4random_uniform(20) - 10 randXConv = CGFloat(randX) char.physicsBody?.velocity = CGVectorMake(0, 0) char.physicsBody?.applyImpulse(CGVector(dx: randXConv, dy: 23)) 游戏结束后,我将呈现EndGameSecene:

我使用以下代码对SKSpriteNode“char”应用脉冲:

    randX = arc4random_uniform(20) - 10
    randXConv = CGFloat(randX)

    char.physicsBody?.velocity = CGVectorMake(0, 0)
    char.physicsBody?.applyImpulse(CGVector(dx: randXConv, dy: 23))
游戏结束后,我将呈现EndGameSecene:

    let skView = self.view! as SKView

    let scene = EndGameScene(size: self.frame.size)
    scene.size = skView.bounds.size
    scene.scaleMode = .AspectFill

    let sceneTransition = SKTransition.crossFadeWithDuration(0.3)
    skView.presentScene(scene, transition: sceneTransition)
但是,在EndGameSecene中按下“重试”按钮并再次显示游戏场景后,脉冲不会使节点“char”移动到第一次加载时的高度:

    let skView = self.view! as SKView

    let scene = GameScene(size: self.frame.size)
    scene.size = skView.bounds.size
    scene.scaleMode = .AspectFill

    let sceneTransition = SKTransition.crossFadeWithDuration(0.3)
    skView.presentScene(scene, transition: sceneTransition)
我认为这与场景或重力有关,但我可能错了。
谢谢您的帮助。

您是否尝试使用恒定脉冲而不是随机脉冲,并检查节点的移动是否相同?是的,脉冲仍然会变化