2015-07-10 5 views
5

Così oggi ho deciso di iniziare a testare il mio gioco su El Capitan e iOS 9. Questo è un grande progetto su cui ho lavorato nel mio tempo libero da quasi 2 anni. Quindi porto il mio codice su Swift 2.0, faccio clic sul pulsante Esegui e prego che Apple non abbia rotto Sprite Kit (come hanno fatto in passato: one, two, three, four e non riesco nemmeno a farmi iniziare sulla forma nodo...). Quindi il mio gioco si avvia, e cosa sai - tutti i miei nodi sono posizionati male, così come le mie trame animate. Alcuni altri piccoli bug, come il conteggio dell'estrazione, non vengono mostrati, ma quelli sono piccoli e si spera che vengano risolti.Major Xcode 7 Sprite Kit Atlas Bug

Così inizio il debug e alla fine sono in grado di scoprire che la maggior parte del problema è legata ai nodi nel mio atlanti che non sono posizionati correttamente. Così ho creato un progetto di esempio come mostrato sotto usando un solo nodo. Puoi vedere nell'immagine che ho impostato il punto di ancoraggio dei nodi su (0,0) e la posizione su (0,0). Anche il punto di ancoraggio della scena è (0,0). Ho stampato tutti questi valori per verificare che siano corretti.

enter image description here

Si può anche vedere che è disegnato in modo corretto nell'editor. Tuttavia quando lancio il gioco ricevo il seguente:

enter image description here

Si può vedere che il nodo è disegnato in modo non corretto. La sua posizione è (0,0) ma è disegnata come offset. E nessuna scena mia non è ridimensionata, corrisponde alla dimensione della vista ed è impostata su ResizeFill.

Ho riscontrato questo problema sia su El Capitan che su iOS 9. La cosa interessante è che il problema diventa più evidente più l'immagine contiene pixel trasparenti. Come puoi vedere dalla schermata dell'editor, la mia immagine contiene molti pixel trasparenti perché volevo mostrare chiaramente il bug. Se avessi usato meno pixel trasparenti, il nodo sarebbe stato meno sfalsato.

Se non si utilizza un atlante, il nodo viene disegnato correttamente come mostrato di seguito. Tuttavia, ovviamente, voglio usare atlanti in modo da poter eseguire il rendering in serie dei miei nodi.

enter image description here

ho presentato questo bug sul radar. Qualcuno ha trovato una soluzione a questo problema che non comporta l'utilizzo di atlanti?

risposta

0

Ho trovato una soluzione a questo come stavo postando la domanda. Speriamo che questo aiuti altre persone che affrontano il problema. E speriamo che Apple risolva questo grosso bug prima della versione finale.

Se si utilizzano i nuovi atlanti XCAssets E si imposta la destinazione di distribuzione sull'ultima versione, il nodo viene visualizzato correttamente. Quindi tutto ciò che devi fare è spostare tutti gli atlanti su XCAssets. Questo però ha effetto sulla compatibilità all'indietro di iOS 8/Yosemite.

enter image description here