Я работаю над игрой, в которой у меня две функции.Первая функция используется для создания ряда препятствий.Переменная gameSpeed используется для определения частоты добавления нового ряда препятствий.Пример: если я установлю gameSpeed на 3, то каждые 3 секунды будет добавляться новая строка препятствий.
func addobstalce() {
lastYieldTimeInterval += timeSinceLastUpdate
if lastYieldTimeInterval > gameSpeed {
lastYieldTimeInterval = 0
nextRow(cR: currentRow)
}
}
, а вторая функция используется для добавления к ним движения.эта функция имеет переменную с именем travelSpeed.Сейчас я установил для travelSpeed значение 8.
func addMovement (obstacle : SKSpriteNode) {
let move = SKAction.move(to: CGPoint(x: obstacle.position.x, y: self.size.height/1.5), duration: TimeInterval(travelSpeed))
let remove = SKAction.removeFromParent()
let both = [move,remove]
moveAndRemove = SKAction.sequence(both)
obstacle.run(moveAndRemove)
}
, поэтому при выполнении вышеуказанного кода каждые три секунды добавляется новое препятствие, и этому препятствию требуется 8 секунд для перехода из нижней части экрана в верхнюю часть экрана.
но по ходу игры я хочу увеличить скорость всей игры.Я могу изменить переменные travelSpeed и gameSpeed, но при этом расстояние между двумя препятствиями не остается неизменным.Как мне увеличить скорость моей игры, сохраняя при этом одинаковое расстояние между двумя препятствиями.
Я использую оператор switch для регулирования переменных travelSpeed и gameSpeed, но я готов использовать и другие методы.
switch obstaclesMade {
case 10:
// increase speed by changing travelSpeed and/or gameSpeed
case 20:
// increase speed by changing travelSpeed and/or gameSpeed
case 30:
// increase speed by changing travelSpeed and/or gameSpeed
default:
break
}
Вот функция, которая добавляет препятствия
func addRow (type :rowType){
let obst1 = addObstacle(type: .small)
let obst2 = addObstacle(type: .small)
let obst3 = addObstacle(type: .small)
obst1.position = CGPoint(x: self.frame.minX + obst1.size.width/2, y: obst1.position.y)
obst2.position = CGPoint(x: self.frame.midX, y: obst1.position.y)
obst3.position = CGPoint(x: self.frame.maxX - obst1.size.width/2, y: obst1.position.y)
addChild(obst1)
addChild(obst2)
addChild(obst3)
addMovement(obstacle: obst1)
addMovement(obstacle: obst2)
addMovement(obstacle: obst3) }
Спасибо за вашу помощь.