Не удалось создать физическое тело при запуске на симуляторе - PullRequest
0 голосов
/ 11 июля 2020

Я создаю игру со скроллом параллакса, и игрок анимирован с помощью атласа текстур. Я столкнулся с различными проблемами при первоначальной попытке назначить физическое тело узлу с текстурным атласом. В любом случае, теперь, когда я пытаюсь запустить игру на телефоне (iPhone X, iOS 13.5), все работает, но когда я пытаюсь запустить ее на симуляторе (iOS13.5), не удается создать физическое тело для земля, которую предполагается создать с помощью следующей функции:

func parallaxScroll(image: String, y: CGFloat, z: CGFloat, duration: Double, needsPhysics: Bool) {
        for i in 0 ... 1 {
            
            // position the first node on the left, and position second on the right
            let node = SKSpriteNode(imageNamed: image)
            node.position = CGPoint(x: 1023 * CGFloat(i), y: y)
            node.zPosition = z
            addChild(node)
            
            if needsPhysics {
                _ = node.texture!.size()
                node.physicsBody = SKPhysicsBody(texture: node.texture!, size: node.texture!.size())
                if node.physicsBody == nil {
                    print("Failed to create physics body for ground")
                } else {
                    print("Physics body for ground created successfully")
                }
                node.physicsBody?.isDynamic = false
                node.physicsBody?.contactTestBitMask = 1
                node.physicsBody?.collisionBitMask = 1
                node.name = "ground"
            }
            
            // make this node move the width of the screen by whatever duration was passed in
            let move = SKAction.moveBy(x: -1024, y: 0, duration: duration)
            
            // make it jump back to the right edge
            let wrap = SKAction.moveBy(x: 1024, y: 0, duration: 0)
            
            // make these two as a sequence that loops forever
            let sequence = SKAction.sequence([move, wrap])
            let forever = SKAction.repeatForever(sequence)
            
            // run the animations
            node.run(forever)
        }
    }

Кто-нибудь знает, в чем проблема и как ее решить?

...