Kewin Opublikowano 5 Maja 2021 Udostępnij Opublikowano 5 Maja 2021 Robię grę z dużą liczbą leveli. Mam problem z wydajnością. Wszystko jest dobrze dopóki nie zostawi sie włączonej gry na np minute, gra zaczyna strasznie zacinać a zrobienie czegokolwiek staje sie niemożliwe. Odczyty z debuggera zaczynają spadac i zagęszczają się występuje to tylko wtedy jeśli gre zostawi sie na jakis czas. Jeśli gra sie w nia caly czas wszystko chodzi płynnie. Nie mam pojęcia dlaczego sie tak dzieje proszę o pomoc bo męczę sie juz z tym czwarty dzień. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kewin Opublikowano 5 Maja 2021 Autor Udostępnij Opublikowano 5 Maja 2021 if global.ulepszenie = 49 { draw_sprite_ext(spr_ulepszenie_9, 0, x, y, 0.2, 0.2, 0, 0, 0) instance_create_layer(x,y+400,"Instances", obj_ulepszenie_9); draw_text_color(x-250, y-100, "Upgrade level cost: 69", c_aqua, c_aqua, c_aqua, c_aqua, 1); instance_deactivate_object(obj_ulepszenie_8); } if global.ulepszenie = 50 { draw_sprite_ext(spr_ulepszenie_10, 0, x, y, 0.2, 0.2, 0, 0, 0) instance_create_layer(x,y+400,"Instances", obj_ulepszenie_10); draw_text_color(x-250, y-100, "Upgrade level cost: 70", c_aqua, c_aqua, c_aqua, c_aqua, 1); instance_deactivate_object(obj_ulepszenie_9); } tutaj jest kod przykładowy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kewin Opublikowano 5 Maja 2021 Autor Udostępnij Opublikowano 5 Maja 2021 if global.ulepszenie = 49 { if global.punkty >= 69 { global.punkty -= 69; global.ulepszenie = 50; } } Cytat tutaj z innego obiektu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 5 Maja 2021 Udostępnij Opublikowano 5 Maja 2021 Nie bardzo rozumiem kontekstu z jakiego obiektu wyciągasz ten "przykładowy kod", więc niewiele można z tego wywnioskować, ale mimo to jedna rzecz mnie niepokoi. Czy przypadkiem tego kodu: Godzinę temu, Kewin napisał: if global.ulepszenie = 49 { draw_sprite_ext(spr_ulepszenie_9, 0, x, y, 0.2, 0.2, 0, 0, 0) instance_create_layer(x,y+400,"Instances", obj_ulepszenie_9); draw_text_color(x-250, y-100, "Upgrade level cost: 69", c_aqua, c_aqua, c_aqua, c_aqua, 1); instance_deactivate_object(obj_ulepszenie_8); } // ... podobny kod nie używasz w zdarzeniu Draw? Jeżeli tak, to prawdopodobnie instancjonujesz obiekty obj_ulepszenie_9/10 itd. w pętli, przez co tworzysz kolejne instancje tego samego obiektu zapychając pamięć i main loopa obsługując inne zdarzenia z tych obiektów. Jeszcze dodam, że funkcja instance_deactivate_object dezaktywuje obiekt, ale go nie zwalnia z pamięci, a to problemu nie rozwiązuje. Kewin 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kewin Opublikowano 5 Maja 2021 Autor Udostępnij Opublikowano 5 Maja 2021 Czyli mam użyć innego eventu? Jak usunąć te elementy na stałe z pamięci? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kewin Opublikowano 5 Maja 2021 Autor Udostępnij Opublikowano 5 Maja 2021 Ale to co napisałeś już mi dużo podpowiedziało dziękuję jutro będę dalej próbował Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rozwiązanie I am Lord Opublikowano 5 Maja 2021 Rozwiązanie Udostępnij Opublikowano 5 Maja 2021 Wstaw na końcu Draw show_debug_message( string(instance_number(obj_ulepszenie_9))+", "+string(instance_number(obj_ulepszenie_10)) ); I zobacz w konsoli Output czy liczby się będą zwiększać. Jeżeli tak to znaczy że nonstop tworzysz te obiekty, w nieskończoność. Instancje obiektu usuwa się za pomocą instance_destroy() Kewin 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kewin Opublikowano 5 Maja 2021 Autor Udostępnij Opublikowano 5 Maja 2021 Dlatego pewnie zacina gra po czasie, dziękuję za podpowiedź juz mam pomysł jak to zrobić Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 5 Maja 2021 Administratorzy Udostępnij Opublikowano 5 Maja 2021 W sumie to dziwne, że debugger nie ma licznika instancji... jest tylko tab z ich listą, ale żeby zauważyć ich nadmiar trzeba by zwrócić uwagę na malejący scrollbar co w tym przypadku pewnie byłoby trudne, bo za szybko się tworzą i od razu scrollbar jest najmniejszy z możliwych Kewin 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kewin Opublikowano 6 Maja 2021 Autor Udostępnij Opublikowano 6 Maja 2021 Udało mi się naprawić ten błąd, dziękuję za szybką pomoc! Uzjel i gnysek 2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się