MODIFICA: OK, questo succede anche con una scena SpriteKit vuota! Cosa potrebbe esserci di sbagliato qui ?? Perché iOS richiede 2 secondi per visualizzare la scena SpriteKit ??Arresto durante la presentazione di ViewController con SKScene
MODIFICA 2: La prima volta clicco sulla barra delle schede per visualizzare il controller di visualizzazione con SKScene che viene visualizzato immediatamente, ma ogni volta che tento di tornare a questo controller di visualizzazione ci vorranno 2 secondi per visualizzarlo!
Nella mia app ho un controller di barra delle schede con più controller di vista diversi.
Uno di questi contiene una scena SpriteKit, con un paio di nodi, 5 di essi, niente di troppo pesante.
Nel simulatore tutto è a posto, ma durante i test sul dispositivo ho notato che a volte c'è una grande interruzione (circa 2 secondi!) Quando si passa a ViewController con la scena SpriteKit.
Altre volte non c'è interruzione e la vista viene visualizzata immediatamente.
Ora, so che ci deve essere qualcosa che sto facendo male qui, perché iOS dovrebbe sicuramente essere in grado di gestirlo.
Questa è la mia funzione di viewDidLoad all'interno della viewController con la scena spriteKit:
override func viewDidLoad() {
super.viewDidLoad()
if let scene = MyScene(fileNamed:"MyScene") {
// Configure the view.
scene.switchView = switchView
let parentNode = scene.childNodeWithName("WholeObject") as! SKSpriteNode
let contentNode = scene.childNodeWithName("CenterNode") as! SKSpriteNode
addPhotoToFrame(contentNode, photoName: "woman", maskName: "circleMask")
let node1 = parentNode.childNodeWithName("node1") as! SKSpriteNode
addPhotoToFrame(zealNode1, photoName: "motherCircleImage", maskName: "circleMaskSmall")
let node2 = parentNode.childNodeWithName("node2") as! SKSpriteNode
addPhotoToFrame(zealNode2, photoName: "hairstylistCircleImage", maskName: "circleMaskSmall")
let node3 = parentNode.childNodeWithName("node3") as! SKSpriteNode
addPhotoToFrame(zealNode3, photoName: "dietCircleImage", maskName: "circleMaskSmall")
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
/* Set the scale mode to scale to fit the window */
scene.scaleMode = .AspectFill
skView.presentScene(scene)
}
}
stai precarico la grafica cercano di precaricare la grafica del primo utilizzo atlante di texture o cercare di trarre tutti i disegni in un disegno filo OpenGL separato a seconda delle dimensioni della grafica (larghezza e altezza) non sul numero di immagini in secondo Why Una volta aggiunta la vista al contenitore radice, basta provare ad aggiungere prima vista e scena successiva e infine a disegnare finalmente – dragoneye
il fatto è che ciò avvenga anche con scene completamente vuote! quindi non penso che il problema sia con la grafica. E 'anche molto incoerente ... Mi sento come se dovessi impostare qualche flag di caching o qualcosa per sistemare questo ... – deloki
hai provato ad aggiungere la vista prima quindi scena e poi gfx – dragoneye