swift 3-Создание flappy птицы игры, горизонтальные трубы неприятности

Таким образом, в настоящее время я делаю flappybird-как игра, используя учебник, и я скопировал все вниз же, но мои трубы просто держать нерест в выбранном месте и не двигаться по горизонтали на всех. Есть идеи, как это исправить? Вот мой код до сих пор:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    if gameStarted == false {
        gameStarted = true

        Ghost.physicsBody?.affectedByGravity = true

        let spawn = SKAction.run { ()in
            self.createWalls()
        }

        let delay = SKAction.wait(forDuration: 2.0)
        let spawnDelay = SKAction.sequence([spawn, delay])
        let spawnDelayForever = SKAction.repeatForever(spawnDelay)
        self.run(spawnDelayForever)

        let distance = CGFloat(self.frame.width + wallPair.frame.width)
        let movePipes = SKAction.moveBy(x: -distance, y: 0, duration: TimeInterval(0.01 * distance))
        let removePipes = SKAction.removeFromParent()
        moveAndRemove = SKAction.sequence([removePipes, movePipes])


        let jumpUpAction = SKAction.moveBy(x: 0, y:180, duration: 0.2)
        Ghost.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
        Ghost.run(jumpUpAction)

2 ответа

  1. В фрагменте кода Вы никогда не вызываете

    self.run(moveAndRemove)
    

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

    self.run(spawnDelayForever)
    

    Вы можете проверить, так ли это?

  2. Все исправлено, я просто передвинул блок:

    let distance = CGFloat(self.frame.width + wallPair.frame.width)
    let movePipes = SKAction.moveBy(x: -distance, y: 0, duration: TimeInterval(0.01 * distance))
    let removePipes = SKAction.removeFromParent()
    moveAndRemove = SKAction.sequence([removePipes, movePipes])
    

    и переместил его в первый набор скобок. thanks heaps for the help though! 🙂