Я пытаюсь перейти от стандартной корневой сцены к новой сцене с помощью SpriteKit. Тем не менее, всякий раз, когда я нажимаю кнопку «Пуск», он выделяет старую сцену (хотя она остается видимой), и появляется ярлык «Чертежная доска». Сцена остается серым. Все кнопки старой сцены могут быть нажаты, но не выполняются связанные с ними действия. UIButton запускает эту FUNC:Сцена Переход Затухание, но не переключение сцен
startButton.addTarget(self, action: "goToDrawingBoard:", forControlEvents: UIControlEvents.TouchUpInside)
FUNC:
@objc func goToDrawingBoard(sender: UIButton){
let drawingBoardScene = DrawingBoardScene(size: self.size)
self.scene?.view?.presentScene(drawingBoardScene, transition: SKTransition.crossFadeWithDuration(1.0))
}
И файл DrawingBoardScene.swift:
import Foundation
import SpriteKit
import UIKit
class DrawingBoardScene: SKScene {
let titleLabel = SKLabelNode(text: "DRAWING BOARD")
override func didMoveToView(view: SKView) {
/*LABEL: Displays title*/
titleLabel.fontColor = UIColor.blackColor()
titleLabel.fontSize = 60
titleLabel.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
self.addChild(titleLabel)
}
}
Недостаточно информации, чтобы сказать наверняка, но необязательная цепочка выглядит подозрительной: в 'self.scene? .view? .presentScene', если либо' scene', либо 'view' - nil,' presentScene' не будет называется. Является ли 'goToDrawingBoard' в классе, где имеет смысл цепляться таким образом? Вы тестировали значения 'self.scene' и' self.scene.view'? – rickster
goToDrawingBoard находится в классе MenuScene – Ulthran
Проверьте мой второй вопрос. Кроме того, причина, по которой вы видите содержание этой сцены, даже если вы не перешли, состоит в том, что вы добавили эту сцену в качестве дочернего элемента текущей сцены. Либо сделать ребенка, либо сделать переход, но не делать того и другого. – rickster