Добавьте свойство для гравитации с наблюдателем, чтобы изменять гравитацию в мире каждый раз, когда она меняется:
var gravity = CGVector(dx: 0.0, dy: -5.8) {
didSet {
physicsWorld.gravity = gravity
}
}
var gravityScaleFactor : CGFloat = 0.9 // Gravity changes this much when score is updated
Измените настройку на:
private func setupPhysics() {
physicsWorld.gravity = gravity
physicsWorld.contactDelegate = self
(Возможно, вам не нужноустановить гравитацию PhysicWorld здесь, как это может быть установлено oberver для свойства гравитации при инициализации гравитации.
Отрегулируйте гравитацию при изменении оценки:
private func updateScoreLabel() {
scoreLabel.text = String(score)
gravity.dx *= gravityScaleFactor
Какмасштабный коэффициент гравитации является переменной величиной, вы можете изменить его в зависимости от уровня сложности, усиления и т. д., и, когда мы изменяем гравитацию мира через наблюдателя свойства гравитации, мы можем изменить свойство в любом месте и знать, что гравитация мира изменится.соответственно.