Tak więc dzisiaj postanowiłem rozpocząć testowanie mojej gry na El Capitan i iOS 9. Jest to duży projekt, nad którym pracuję w wolnym czasie od prawie 2 lat. Przesyłam mój kod do Swift 2.0, klikam przycisk "biegnij" i módlmy się, aby Apple nie złamał Sprite Kit (tak jak to miało miejsce w przeszłości: one, two, three, four i nawet nie zaczynam od określenia kształtu węzeł...). Więc moja gra się uruchamia, a co wiesz - wszystkie moje węzły są źle ustawione, a także moje animowane tekstury. Niektóre inne małe błędy, takie jak liczba losowań, nie są wyświetlane, ale są małe i mam nadzieję, że zostaną również poprawione.Major Xcode 7 Zestaw Sprite Atlas Bug
Więc zaczynam debugowanie i ostatecznie jestem w stanie stwierdzić, że większość problemu jest związana z węzłami w moich atlasach, które nie są ustawione poprawnie. Dlatego stworzyłem przykładowy projekt, jak pokazano poniżej, używając tylko jednego węzła. Na obrazku widzę punkt kontrolny węzłów do (0,0) i pozycję do (0,0). Punkt kontrolny sceny jest również (0,0). Wydrukowałem wszystkie te wartości, aby sprawdzić, czy są poprawne.
Można również zauważyć, że jest ona prawidłowo sporządzony w edytorze. Jednak kiedy uruchomić grę pojawia się następujący:
Widać, że węzeł jest sporządzony nieprawidłowo. Jego pozycja to (0,0), ale rysuje się offset. I nie moja scena nie jest skalowana, dopasowuje rozmiar widoku i jest ustawiona na ResizeFill.
Dostaję ten problem zarówno na El Capitan, jak i iOS 9. Co ciekawe, problem staje się bardziej zauważalny, im bardziej obraz zawiera przezroczyste piksele. Jak widać na ekranie z ekranu edytora, mój obraz zawiera wiele przezroczystych pikseli, ponieważ chciałem wyraźnie pokazać błąd. Gdybym użył mniej przezroczystych pikseli, węzeł byłby mniej przesunięty.
Jeśli nie używam atlasu, wówczas węzeł jest narysowany poprawnie, jak pokazano poniżej. Jednak oczywiście chcę używać atlasów, aby móc wsadowo renderować moje węzły.
I złożyli ten błąd na radarze. Czy ktoś znalazł obejście tego problemu, które nie wymaga użycia atlasów?