Skocz do zawartości

Zablokowane Dyskusja o dezaktywacji


David Dark

Rekomendowane odpowiedzi

Witam,

uzywam typowego skryptu na dezaktywowanie obiektow:

GML
instance_deactivate_region( view_xview[0]-40, view_yview[0]-40, view_xview[0]+720, view_yview[0]+720, false, 1 );

instance_activate_region( view_xview[0]-40, view_yview[0]-40, view_xview[0]+720, view_yview[0]+720,1 );

//obiekty poza viewem ktore maja pozostawac aktywne

instance_activate_object( jakisobiekt );

 

Sprawdzalem ile moge pozostawic obiektow poza viewem, no i przy 100 potworkach wszystko jest wporzadku, jednak juz przy 200 fps spada juz do 57fps. Zastanawiam sie wiec czy ten kod na deaktywacje jest troche niedoskonaly, czy istnieje ten moment kiedy wszystkie obiekty sa aktywne zaraz po linijce

GML
instance_deactivate_region( view_xview[0]-40, view_yview[0]-40, view_xview[0]+720, view_yview[0]+720, false, 1 );

a zanim zostanie program zdezaktywuje obiekty poza view'em

GML
instance_activate_region( view_xview[0]-40, view_yview[0]-40, view_xview[0]+720, view_yview[0]+720,1 );

 

i czy to moze sprawiac ze jednak zabiera mi to troche tego FPSu, bo wyobrazalem sobie ze deaktywacja sprawia ze obiekty sa calkowicie wylaczaone jakby ich tam nie bylo i chocbym mial ich tam 1000 to FPS dalej bylby na najwyzszym poziomie.

 

Jesli to wyglada tak ze na ta jedna chwilke obiekty sa aktywowane i ma to wplyw na FPS to trzeba by to ominac, najpierw trzeba by sie zapytac czy dany obiekt jest w polu view'a, a dopiero potem powinna zapadac decyzja o aktywacji lub dalszej deaktywacji. Program musialby sprawdzac kazdy obiekt(np. potworów) z osobna, probowalem zrobic jakas sprytna petelke na to ale wyskakuja rozne bledy, jesli ktos stosuje dobry skrypt na deaktywacje odpowiednich obiektow danego typu i moglby sie podzielic to bylbym wdzieczny. Pozatym interesuje mnie tez odpowiedz na to pytanie czy pomiedzy ta aktywacja a deaktywacja jest ten moment kiedy obiekty sa aktywne i czy wogole mowie sensownie, ze dobrze by bylo omijac ten moment?

 

Z góry dzieki.

Odnośnik do komentarza
Udostępnij na innych stronach

Raczej nie. Kod się wykonuje cały w ciągu jednego stepa (albo mniej)

jak robisz np. pętle w której jest mnóstwo obliczeń. to komputer przycina.

Dlatego że czeka na obliczenie a zarazem skończenie danego kodu.

 

Więc odpowiedź brzmi raczej nie ;P

 

Dobranoc.

Uzjel :thumbsup:

Odnośnik do komentarza
Udostępnij na innych stronach

Dziwne :blink:

napewno robisz wszystko dobrze ?

Coś ala:

GML
//Oszczedzanie pamieci

xx = o_gracz.x;

yy = o_gracz.y;

instance_deactivate_region( xx - 450, yy - 450, 900, 900, false, 1 );

instance_activate_region( xx - 450, yy - 450, 900, 900, true );

 

//Lista niezbędnych

instance_activate_object( o_wazny_obiekt );

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...