ios - 将物理体添加到 Spritekit 节点

标签 ios swift sprite-kit skspritenode skphysicsbody

我正在使用 Xcode 7 和 Swift 2 在 iOS 上制作一款基本游戏。我正在尝试向节点添加物理实体。在用户的角色上,物理 body 运行良好(没有崩溃并且运行相同)。然而,当向障碍物添加物理体时,障碍物并没有出现......这是我的障碍物代码:

        let random = Int(arc4random_uniform(4))
        var objectTexture = SKTexture()
        var object = SKSpriteNode()
        if random == 0 {
            objectTexture = SKTexture(imageNamed: "coin")
            object = SKSpriteNode(texture: objectTexture)

            object.physicsBody = SKPhysicsBody(rectangleOfSize: objectTexture.size())
            object.physicsBody!.categoryBitMask = ColliderType.Coin.rawValue
            object.physicsBody!.contactTestBitMask = ColliderType.Coin.rawValue
            object.physicsBody!.collisionBitMask = ColliderType.Coin.rawValue

        }
        if random != 0 {
            objectTexture = SKTexture(imageNamed: "fryingPan")
            object = SKSpriteNode(texture: objectTexture)

            object.physicsBody = SKPhysicsBody(rectangleOfSize: objectTexture.size())
            object.physicsBody!.categoryBitMask = ColliderType.Obstacle.rawValue
            object.physicsBody!.contactTestBitMask = ColliderType.Obstacle.rawValue
            object.physicsBody!.collisionBitMask = ColliderType.Obstacle.rawValue

        }
        //Setting up object

使用此代码,对象不会出现在屏幕上。但是,当我注释掉 body 线条时,该对象会按照指示出现在屏幕上。有谁知道我可能哪里出错了?感谢您的帮助。

最佳答案

设置

object.physicsBody.affectedByGravity = false

我猜重力会将你的障碍物移出屏幕

关于ios - 将物理体添加到 Spritekit 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33984078/

相关文章:

ios - Xcode 8 在打开项目后立即崩溃(似乎与场景编辑器相关)

ios - Xcode ipa 在 iOS 5.1 上安装,但在 iOS 5.1.1 上失败

android - 是否可以在 Firebase 中更改自动选择的用户属性

swift - 用动画填充水平 View (Swift)

ios - 在 Swift 中使用 NSMutableAttributedString 更改特定文本的颜色

objective-c - 在 SpriteKit 中,我可以将一些 SKActions 排队并行运行,而另一些则按顺序运行吗?

ios - 为什么我无法在 Xcode 中联系外部 .swift 文档

ios - 在 NSMutableArray 的末尾插入元素

objective-c - 无法分配 self.delegate 它会产生无法识别的选择器发送

ios - 带有子 MVVM 的 MVVM 在 iOS 中如何工作?