Xcode affectedByGravity值重置为true,不会保持设置为false

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xcode affectedByGravity值重置为true,不会保持设置为false相关的知识,希望对你有一定的参考价值。

我是Xcode Games的新手,但我一直在尝试使用引力场。我可以创建字段,让身体与它们交互等等,但是,当我以编程方式创建SKSpriteNode时,第二个我给它一个物理体,无论我将AffectedByGravity或fieldBitMask值设置为什么,它总是被吸引到场景中的径向场。

以下是我认为相关的一些代码:

 func createNewBody(x: CGFloat, y: CGFloat){
    let newBody = SKSpriteNode()
    newBody.texture = SKTexture(image: #imageLiteral(resourceName: "Circle_Burgundy_Solid.svg"))
    newBody.size = CGSize(width: 10, height: 10)
    newBody.position.x = x
    newBody.position.y = y
    newBody.physicsBody = SKPhysicsBody(circleOfRadius: newBody.size.width/2)
    newBody.physicsBody?.affectedByGravity = false
    self.addChild(newBody)
}

从touchBegan方法调用此代码:

 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    for touch in touches{
        if touch == touches.first{
            createNewBody(x: touch.location(in: self).x, y: touch.location(in: self).y)
        }
    }
}

我不知道为什么这不起作用。任何想法都会很棒!谢谢!

答案

在您的代码中,您使用了局部变量newBody,您确定该节点在update中可用吗?

affectedByGravity旨在定义与物理世界的重力相互作用,并且与任何其他领域无关。

如果要相对于字段定义给定节点的行为,则需要相应地设置节点的fieldBitMask和字段的categoryBitMask

以上是关于Xcode affectedByGravity值重置为true,不会保持设置为false的主要内容,如果未能解决你的问题,请参考以下文章

XSLT 用属性值重命名元素

React Page 在根据 redux 值重定向之前闪烁

如何使用字典键和值重命名 pandas DataFrame 中的列?

在 Azure OIDC 注销后,应该将啥内容安全策略标头值重定向回应用程序

在 EasyAdmin 3 中使用预填充值重定向到新操作

Vue路由器和vuex基于值重定向的问题