Могу ли я перегрузить функцию обновления SpriteKit - PullRequest
0 голосов
/ 17 ноября 2018

Мне интересно, могу ли я перегрузить функцию обновления в SpriteKit, чтобы из-за этого моя программа начинала отставать? (таким образом это называется довольно часто -> каждый кадр или что-то)

Я проверяю переменные внутри функции обновления, говоря:

func update(_ currentTime: TimeInterval)
{
    if(isLeveldone)
    {
        createNewLevel()
    }
}

Я устанавливаю isLeveldone: Bool в false внутри функции createNewLevel, поэтому она не будет запускать функцию при каждом обновлении. И из этих проверок у меня как 6 или 7.

1 Ответ

0 голосов
/ 18 ноября 2018

Если под «перегрузкой» вы подразумеваете «заставить его делать слишком много работы», а не для определения объектно-ориентированного программирования «перегрузки», то да, вы можете.

Однако - вы можете выполнить лот работы в «обновлении» до того, как это станет проблемой. То, что у вас есть, выглядит недостаточно, чтобы ваша программа зависала, если только ваша функция createNewLevel не слишком велика.

Примечание: Swift поддерживает «перегрузку» в смысле ООП, то есть определяет функцию несколько раз, но с разными сигнатурами (типами параметров), но это не относится к update (это было не то, что вы спрашивали, я понимаете) потому что update вызывается только двигателем SK, и вы не должны пытаться вызывать его самостоятельно.

...