alwin Opublikowano 18 Kwietnia 2010 Udostępnij Opublikowano 18 Kwietnia 2010 Naprawdę sporo się zyskuje na dezaktywacji obiektów poza 'kamerą', wydajność znacznie wzrasta. Ale nie mogę usuwać wszystkich ponieważ np- kiedy zaznaczę jednostkę, zjadę z niej wievew to już prpgram 'mysli' że nie mam nic zaznaczonego i nie pozwoli mi uruchomic akcji odpowiedzialnych za poruszanie kiedy kliknę:/ Miałem taki kod w stepie obj_kontrol GML instance_activate_all(); instance_deactivate_region(view_xview[0],view_yview[0],view_wview[0],view_hview[0],false,true); A moje pytanie- jak dezaktywować np obiekty poza viewem tylko jakiegos typu? Np. drzewa i inne pierdoły.. A jednostki zostawię w spokoju raczej. Choc to one pożerają wydajność.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Saus Opublikowano 18 Kwietnia 2010 Udostępnij Opublikowano 18 Kwietnia 2010 Jesli chcesz zeby jakies obiekty byly zawsze aktywne dopisz po prostu pod tym GML instance_activate_object(jednostki); i zostawi je w spokoju. Tak wlasnie mozesz sobie zostawic obiekty odpowiedzialne za rozne hudy itp Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
alwin Opublikowano 18 Kwietnia 2010 Autor Udostępnij Opublikowano 18 Kwietnia 2010 No racja... Kurde i tak o kant dupy. Mam obiekty- Drzewa,Kopalnia,Pracownicy,Piechurzy,Łucznicy,Pałac. I nic z tego nie mogę usuwać.. pracownicy zbierają drzewo- jak zejde kamerą, drzewa znikaja to pracownicy szukają tych najblizszych i szukają po całej mapie:/ Ehh i to taki mały przykładzik, jednak nic z tego pomysłu nie będzie.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 18 Kwietnia 2010 Udostępnij Opublikowano 18 Kwietnia 2010 Zrób chociaż żeby ich grafika się nie wyświetlała poza viewem na pewno to trochę przyspieszy grę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TheMarcQ Opublikowano 18 Kwietnia 2010 Udostępnij Opublikowano 18 Kwietnia 2010 GML if x>view_xview && y>view_yview && x<view_xview+room_height && x>view_xview+room_width {draw_sprite(image_index/*coś tam coś tam nie pamietam*/} edit::mam: GML draw_sprite_ext( sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
alwin Opublikowano 18 Kwietnia 2010 Autor Udostępnij Opublikowano 18 Kwietnia 2010 Myślisz że to coś da? To proste sprity.. ale warto spróbować w sumie, nic nie zaszkodzi. GML if(x>view_xview[0]+640){ ??? } Gdy obiekt będzie poza prawą stroną viewa- usuń sprita? Dobrze kombinuję? E: no właśnie tylko jak usunąć sprita? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TheMarcQ Opublikowano 18 Kwietnia 2010 Udostępnij Opublikowano 18 Kwietnia 2010 patrz nad saba masz odpowiedź e:ale możesz też dodac GML else {} Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
alwin Opublikowano 18 Kwietnia 2010 Autor Udostępnij Opublikowano 18 Kwietnia 2010 O właśnie:) Browarek dla Ciebie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
alwin Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 Ha ha jednak się zawziąłem i zrobię bardziej wydajny mój silnik:) Jak wyzej mówiłem , dezaktywacja jakiejś jednostki która wykonuje czynności nie ma sensu więc- GML with (obj_jednostka_pracownik) { if(x>view_xview[0]+40)&&(x<view_xview[0]+600)&&(y>view_yview[0]+40)&&(y<view_yview[0]+440)// w kamerze { instance_activate_object(self) // aktywuj } else { //poza kamera if(ruch)||(pracuje)||(wali_drzewo)||(niesie_zloto)||(niesie_drzewo) // jezeli wykonuje te czynnosci { instance_activate_object(self) // dalej pozaostaw aktywne } else { // jezeli sie leni, nic nie robi instance_deactivate_object(self) // dezaktywuj } } } Ładnie działa poza jednym. Jeżeli się dezaktywuje - to po powroci viewa już nie ma tego obiektu- nie aktywuje się na nowo. tak sobie myslę ze nie może się aktywować bo nie istnieje- więc i te akcje sie nie wykonują odpowiedzialne za aktywację.. jak to ominąć? Edycja: Dopisałem linijkę GML instance_activate_region(view_xview[0]+40,view_yview[0]+40,view_wview[0],view_hview[0],true) i śmiga aż miło:) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 alwin... a moze po prostu dezaktywuj pierdoły... zrób parenta par_pierdoły i dezaktywuj to 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ę