Pracowałem nad grą i przetestowałem ją z poprzednią wersją iOS, zagrałem setki razy i nie widziałem ani jednego wypadku, po tym jak Zainstalowałem iOS7 i zaktualizowałem xcode Właśnie wypróbowałem moją aplikację i ... teraz czasami się zawiesza. Wypadki nie zdarzają się w określonym momencie lub akcji, są po prostu całkowicie losowe, czasami natychmiast się zawieszają, czasami po 2-3 grach, próbowałem zrobić to samo, aby sprawdzić, czy jest to coś szczególnego, ale wydaje się, że nie bądź przynajmniej nie coś zauważalnego w ten sposób. Używam duszków i batchnodów w scenie gry.iOS 7 i Cocos2d, exc_bad_access na glDrawElements całkowicie losowo
Dokładnie w tej linii kodu (około 522) w pliku CCTextureAtlas.m:
glDrawElements(GL_TRIANGLES, (GLsizei) n*6, GL_UNSIGNED_SHORT, (GLvoid*) (start*6*sizeof(_indices[0])));
ponieważ nie dokonała żadnych zmian w kodzie Gorąco wątpliwości, że może być coś zrobiłem, prawdopodobnie to jest coś związanego ze zmianami w iOS7, które mają wpływ na cocos2d? Nawet nie jestem ekspertem z OpenGL, więc mam twardy czas, aby zrozumieć, co się dzieje ...
oczywiście w grze mam pewne animacje trwające ...
Dodatkowe informacje:
- ten NIE dzieje się po ostrzeżeniu o pamięci (w ogóle nie mam ostrzeżenia o pamięci).
upewnij się, że nie ma czegoś powodując połączeń OpenGL w innym wątku/kolejki, które mogłyby uszkodzić stan VBO (co glDrawElements próbuje narysować), tuż przed wywołaniem glDrawElements(). – mattorb
to też dzieje się dla mnie ... ale tylko w symulatorze (pamiętaj, że "nie widząc" czegoś trudno udowodnić). Po uruchomieniu w symulatorze, po wyjściu z tego, mogę wznowić stamtąd !!! – YvesLeBorg
Wyjaśniłem, że w moim przypadku problem był spowodowany przez CCLabelBMFont, prawdopodobnie po iOS7 coś się stało i podczas ich rysowania istnieje szansa na awarię. Właściwie zastąpiłem je CCLabelTTF i wszystko jest w porządku, ale skoro nie wiem jeszcze jak to naprawić (to tylko obejście), nie zamieszczam odpowiedzi ... Odkryłem, że prawdopodobnie są Zmiany, które należy wprowadzić, ale jeszcze nie próbowałem: https://github.com/jllust/cocos2d-x/commit/1f3c1145362c921bf5232c4ffbca4a5245042bae – Adarkuccio