2015-07-10 14 views
5

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.

enter image description here

Można również zauważyć, że jest ona prawidłowo sporządzony w edytorze. Jednak kiedy uruchomić grę pojawia się następujący:

enter image description here

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.

enter image description here

I złożyli ten błąd na radarze. Czy ktoś znalazł obejście tego problemu, które nie wymaga użycia atlasów?

Odpowiedz

0

Znalazłem obejście tego, gdy zamieszczałem pytanie. Mam nadzieję, że pomoże to innym osobom, które napotkają problem. I mam nadzieję, że Apple naprawi ten poważny błąd przed ostateczną wersją.

Jeśli używasz nowych atlasów XCAsset i ustawiasz docelowe wdrożenie do najnowszej wersji, węzeł jest renderowany poprawnie. Wszystko co musisz zrobić, to przenieść wszystkie swoje atlasy do zestawów XCA. Skutkuje to jednak kompatybilnością wsteczną iOS 8/Yosemite.

enter image description here