Cześć, klepię grę i nie wiem jak w dobry sposób usuwac obiekty z vector'a, by potem program nie wysypywał się na poruszaniu lub rysowaniu.
nie wiem o ktory vector chodzi, kodu troche jest, wiec troche srednio by analizowac caly projekt tylko po to by Ci pomoc w jakims fragmencie.
Ale co moge powiedziec to. Nie uzywaj new i delete
lektura do poczytania
https://dsp.krzaq.cc/post/176/ucze-sie-cxx-kiedy-uzywac-new-i-delete/
i zapewne to rozwiaze Twoj problem
Dziękuję, jak nie uda mi się roziwiązać problemu to wrócę :)
jako, ze w komentarzu dopisales ze chodzi o enemies to widze tutaj blad
for(int i = enemies.size(); i <= maxOfEnemy; ++i){
i w srodku tej petli robisz enemies.push_back(easy);
w nastepnej petli (foreach) usuwasz elementy po obiekcie ktorym iterujesz. Ogolnie smierdzi mi tam UB ale, nie jestem pewien czy aby to byl ten problem.
na pewno warto do poczytania tutaj
https://stackoverflow.com/questions/3938838/erasing-from-a-stdvector-while-doing-a-for-each
Problemem jest linijka:
auto e = std::begin(enemies);
Po każdej modyfikacji enemies
iteratory ulegają przedawnieniu i nie można już na nich polegać.
Jako, że w liniach 820-112
enemies
jest modyfikowana to linijka 120 jest niezdefiniowanym zachowaniem.
Największy jednak problem, to że twoje repozytorium nie zawiera informacji o procesie budowania.
Przypuszczalnie brakuje CMakeList.txt
lub czegoś analogicznego.