Поток 1: точка останова 1.1 Xcode Swift - PullRequest
0 голосов
/ 21 января 2020

На самом деле не знаю, как решить эту проблему. Всякий раз, когда игра запускается, она вылетает и дает мне такой вывод. Я взглянул на несколько других статей по этой проблеме, но они не помогли.

Ошибка происходит в строке 'let врага', которую я прокомментировал, где проблема появляется

@objc func spawnEnem() {

        let enemyBall = SKSpriteNode(imageNamed: "enemyBall") #Thread 1: breakpoint 1.1 issue HERE


        self.addChild(enemyBall)
        enemyBall.size = CGSize(width: 25.0, height: 25.0)
        enemyBall.physicsBody = SKPhysicsBody(circleOfRadius: enemyBall.size.width/2)
        enemyBall.physicsBody?.affectedByGravity = true


        // Physics of our enemy
        enemyBall.physicsBody = SKPhysicsBody(circleOfRadius: enemyBall.size.width / 2)
        enemyBall.physicsBody?.categoryBitMask = PhysicsCatagroy.EnemyHere // setting enemyBall to our physics
        enemyBall.physicsBody?.contactTestBitMask = PhysicsCatagroy.smallBall | PhysicsCatagroy.mainBall // if our enemy ball hits the small ball or main ball run this
        enemyBall.physicsBody?.collisionBitMask = PhysicsCatagroy.smallBall | PhysicsCatagroy.mainBall // allows enemy Ball to collide with these small ball and main ball
        enemyBall.physicsBody?.isDynamic = false // we dont want enemy effected by gravity
        enemyBall.name = "Enemy"

    switch randomPosNum {

        case 0:
            enemyBall.position.x = 0

            let posY = arc4random_uniform(UInt32(frame.size.height))
            enemyBall.position.y = CGFloat(posY)
            break
        case 1:
            enemyBall.position.y = 0

            let posX = arc4random_uniform(UInt32(frame.size.width))
            enemyBall.position.x = CGFloat(posX)
            break
        case 2:
            enemyBall.position.y = frame.size.height

            let posX = arc4random_uniform(UInt32(frame.size.width))
            enemyBall.position.x = CGFloat(posX)
            break
        case 3:
            enemyBall.position.x = frame.size.width

            let posY = arc4random_uniform(UInt32(frame.size.height))
            enemyBall.position.y = CGFloat(posY)

            break
        default:


            break
        }
               enemyBall.run(SKAction.move(to: mainBall.position, duration: 3)) // moves enemy ball to the player ball



    }

1 Ответ

2 голосов
/ 21 января 2020

У вас есть активная точка останова:

Press CMD + 8

, чтобы увидеть активные точки останова, щелкните все, что появляется слева, и нажмите кнопку удаления, она должна выглядеть следующим образом:

enter image description here

, затем попробуйте запустить его снова.

Точки останова - это способ отладки кода, это в основном то, что останавливает ваш код на определенной c точке посмотрите, что было выполнено, в каком порядке и какие переменные имеют какие данные им присвоены.

...