Я следовал учебному пособию Джареда Дэвидсона Как сделать Flappy Bird , и я не знаю, почему не работает одна из функций, использующих SKAction.moveBy.Я думаю, что часть проблемы в том, что это может быть в ландшафтном режиме.Пользователь должен коснуться экрана, который заставляет призрака прыгать и препятствия начинают двигаться.Кто-нибудь, пожалуйста, помогите.Вот мой код для одной функции:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
{
if (gameStarted == false)
{
gameStarted = true
let spawn = SKAction.run(
{
() in
self.createObstacles()
})
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 + 20)
let moveObstacles = SKAction.moveBy(x: distance, y: 0, duration: TimeInterval( 0.01*distance))
let removeObstacles = SKAction.removeFromParent()
moveAndRemove = SKAction.sequence([moveObstacles, removeObstacles])
ghost.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
ghost.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 90))
}
else
{
ghost.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
ghost.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 90))
}
}