Размер дополнительного аргумента Swift SpriteKit в вызове

При попытке перехода между SKScene и другим SKScene. Например, когда игра закончилась, я использую приведенный ниже код и получаю следующую ошибку: -

Дополнительный аргумент "размер" в вызове

Ниже приведен пример моего кода, используемого при возникновении этой ошибки.

let scene = GameOverScreen(size: self.scene!.size) //<<---- Error throws here
scene.scaleMode = SKSceneScaleMode.AspectFill
view!.scene?.paused = true

self.scene!.view!.presentScene(scene, transition: transition)

Такого никогда не было в моих предыдущих играх, и я не могу понять, почему?

Использование XCode 7, swift 2 и SpriteKit

Заранее спасибо,

Рэйчел


person Rachel Evans    schedule 20.10.2015    source источник
comment
Я проверил ваш код, и все в порядке. Является ли GameOverScreen подклассом SKScene?   -  person WangYudong    schedule 20.10.2015
comment
class GameOverScreen: SKScene { } отлично работает и в моей другой игре. и игра на экране почти такая же. Оба экрана SKScene   -  person Rachel Evans    schedule 20.10.2015
comment
У вас есть другие инициализаторы в GameOverScene? Мне было бы интересно увидеть вашу GameOverScene, по крайней мере, любые инициализаторы   -  person Ben Kane    schedule 20.10.2015


Ответы (1)


Я предполагаю, что это происходит потому, что у вас есть другие инициализаторы, определенные в GameOverScene, которые вы не упомянули. Поскольку вы это делаете, вы не наследуете автоматически все инициализаторы SKScene. Вероятно, вам просто нужно добавить следующее к GameOverScene:

override init(size: CGSize) {
    // Set up your properties
    super.init(size: size)

    // Do whatever else you need to
}

Если бы у вас не было инициализаторов, определенных в GameOverScene, вы бы не увидели этого поведения. Я бы посоветовал дополнительно прочитать Автоматическое наследование инициализатора. Раздел, на который я дал ссылку на этой странице, описывает правила, когда класс наследует инициализаторы суперкласса. По умолчанию они не наследуются.

person Ben Kane    schedule 20.10.2015