Я делаю игру, в которой объекты появляются на карте в определенном месте, и у меня есть несколько функций для разных объектов, и мне нужна ссылка, поэтому я помещаю свой код за пределы функции расширения сферы его применения, но теперь я получаю сообщение об ошибке:тип кадра экземпляра, когда нет функции error
Instance type 'frame' cannot be used on type 'Levelunit'
Если я положил его обратно в функцию оно совершенно нормально, но это, кажется, есть проблема, когда я положил его вне функции. Вот мой код:
let yAxisSpawnLocations: [CGFloat] = [0]
let xAxisSpawnLocations: [CGFloat] = {
var spawnLocations:[CGFloat] = [] //Create 5 possible spawn locations
let numberOfNodes = 5
for i in 0...numberOfNodes - 1 {
var xPosition = (frame.maxX)/CGFloat((numberOfNodes - 1)) * CGFloat(i)
xPosition += thePlayer.size.width/2
xPosition -= frame.maxX/1.6
spawnLocations.append(xPosition)
}
return spawnLocations
}()
Я искал его и не совсем понял ответ. Может ли кто-нибудь сказать мне, что я делаю неправильно, пожалуйста.
BTW, LevelUnit - это имя моего класса.
Если вы предоставить более подробную информацию о классе Levelunit я мог бы прокомментировать больше о, если это хорошая идея, чтобы отменить его инициализатор и инициализируйте свойство 'xSwnwnLocation'. Я предполагаю, что это подкласс «SKScene», и вы инициализируете его с помощью инициализатора удобства fileNamed, правильно? Но в любом случае, проверьте мой ответ. Он должен работать. – Whirlwind