LionX Dagger Opublikowano 22 Marca 2007 Udostępnij Opublikowano 22 Marca 2007 witam mam problem zapewne częsty przy tworzeniu w gm sorrka jeżeli uznacie to za zbyt mało zaawansowane pytanie to serdecznie przepraszam i moderatora proszę o przeniesienie a więc mam rooma 10400 na 12000 wypełnionego obiektami o rozmiarze 64 na 64 i co tu dużo mówić tnie się że grać się nie da Macie jakieś wypróbowane pomysły na zoptymalizowanie gry ?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Modnar23 Opublikowano 22 Marca 2007 Udostępnij Opublikowano 22 Marca 2007 a próbowałeś deaktywować obiekty? instance_deactivate_all(notme); instance_deactivate_object(obj); instance_deactivate_region(left,top,width,height,inside,notme); instance_activate_all(); instance_activate_object(obj); instance_activate_region(left,top,width,height,inside); Więcej w helpie pod hasłem: "Deactivating instances". Możesz te instancje które są poza ekranem deaktywować. Wtedy one "tak jakby" nie istnieją - tzn. nie są wykonywane żadne zdarzenia, i nie można się do nich odwoływać. Osobiście jeszcze tego nie próbowałem, ale może to nieco odciążyć grę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 22 Marca 2007 Udostępnij Opublikowano 22 Marca 2007 hej a mam takie small pytanie :P jak np chce by mi sie aktywowały tylko obiekty ktore są na widoku to jak? (bez uzycia tej z region). No przeciez skąd gra ma wiedziec czy dany obiekt jest w moim widoku skoro po dezaktywacji nie zna jego x i y? Mam wszystko do zmiennych zapisywac xD? xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 23 Marca 2007 Udostępnij Opublikowano 23 Marca 2007 Chyba nie rozumiesz jak działa ten system w GM. Obiekty dalej istnieją, ale dostęp do ich zmiennych jest niemożliwy oraz wykonywanie eventów wstrzymane - co pozwala odzyskać część fpsów. Obiekt dalej "znajduje" się w pamięci i dostęp do niego jest możliwy z innego poziomu niż sam GML. :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Modnar23 Opublikowano 23 Marca 2007 Udostępnij Opublikowano 23 Marca 2007 jak np chce by mi sie aktywowały tylko obiekty ktore są na widoku to jak? Ja bym podczas uruchomienia room'a, deaktywował wszystkie instancje, a linijkę kodu niżej aktywował region, o rozmiarach i pozycji widoku. Albo odwrotnie, jak proponuje pan Marek: { instance_activate_all(); instance_deactivate_region(view_xview[0],view_yview[0], view_wview[0],view_hview[0],false,true); } (bez uzycia tej z region) Bez tej funkcji to się chyba nie da. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 23 Marca 2007 Udostępnij Opublikowano 23 Marca 2007 A czy da się zrobić żeby tylko wyznaczone przezemnie obiekty się dezaktywowały w wyznaczonym regionie. A nie każde. Bo wtedy przeciwnicy też znikną i pojawią sie tylko wtedy gdy będzie on na kamerze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
spyro Opublikowano 23 Marca 2007 Udostępnij Opublikowano 23 Marca 2007 No to instance_deactivate_object(obj) jeśli o to chodzi... Albo może jakaś inna funkcja jest na to, teraz niestety nie pamiętam ;/ @Modnar<numerki, ale taki Smart Newbie xD>: Jak Marek oO...? Jak już to Mark xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 23 Marca 2007 Udostępnij Opublikowano 23 Marca 2007 to wiem ale jak zrobić żeby te obiekty poza viewem znikały. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
spyro Opublikowano 23 Marca 2007 Udostępnij Opublikowano 23 Marca 2007 To proste: if x > view_wview or x < view_xview or y > view_hview or y < view_yview { instance_deactivate_object(obj) }; Proste xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 23 Marca 2007 Autor Udostępnij Opublikowano 23 Marca 2007 To proste: if x > view_wview or x < view_xview or y > view_hview or y < view_yview { instance_deactivate_object(obj) }; Proste xD ten sposób nie działa a pro po dzięki funkcji instance_deactivate mogę lepiej sprecyzować pytanie po naciśnięciu f1 w gm znalazłem przykład i wszystko było by cacy gdyby mi jednak wszystkiego nie wyłączał a więc moje sprecyzowane pytanko to mam sobie obiekt nazwijmy go land do tego landu mam inne obiekty przypisane jako parent i chciałbym żeby tylko na te które mają parent do obiektu land były z dezaktywowane mniej więcej coś takiego jak na górze byle by działało sam prubuje coś wykombinować ale mi coś nie wychodzi ^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Modnar23 Opublikowano 25 Marca 2007 Udostępnij Opublikowano 25 Marca 2007 Jeśli chodzi o deaktywację instancji dziedziczących z obiektu land, to wystarczy coś takiego: var p; with(all) { p = object_get_parent(object_index); if(p == land) instance_deactivate_object(object_index); } Żeby to jeszcze uzależnić od tego, czy instancja jest w widoku, to trzeba rozbudować nieco warunek. Mnie się to narazie nie udało. To proste: if x > view_wview or x < view_xview or y > view_hview or y < view_yview { instance_deactivate_object(obj) }; Proste xD Jeżeli już, to tak: if((x > view_xview && x < (view_xview + view_wview)) and (y > view_yview && y < (view_yview + view_hview))) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 2 Maja 2007 Autor Udostępnij Opublikowano 2 Maja 2007 Witam wiem że odświeżam stary temat ale sam go założyłem więc wiecie XP wreszcie udało mi się uzyskać to co chciałem czyli dezaktywowanie tylko tych obiektów które chcemy i chciałem się tym z wami podzielić bo mam nadzieje że nie jednemu on się przyda zwłaszcza twórcom gier 3d którzy potrzebują robić jak najwydajniejsze gry by się nie cięły a jeśli można to moderatora prosił bym o umieszczenie tego przykładu w dziale z przykładami na gmclanie no chyba że tam już taki jest a się opisałem a wy tu pewnie czekacie na link oto on ^^ >>Download<<//Link 2 posty niżej XP Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Maja 2007 Udostępnij Opublikowano 2 Maja 2007 Z przejściem nie działa tak jak trzeba - nie dezaktywuje obiektów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 2 Maja 2007 Autor Udostępnij Opublikowano 2 Maja 2007 A jednak moja radości była przed wczesna >3 i z powrotem do programowania Edit: No mam nadzieję że teraz jest już dobrze ^^ w każdym razie przetestowałem na gierce 3d i wszystko chodziło ok. >>Download<<//Link 2 posty niżej XP Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Maja 2007 Udostępnij Opublikowano 2 Maja 2007 Dalej to samo. Uruchamiaj grę w debugerze, tam masz podane ile obiektów jest aktywnych. =) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 2 Maja 2007 Autor Udostępnij Opublikowano 2 Maja 2007 Aaa już wiem co jest nie tak bo w obiekcie obi_A w create zmienna al powinna być ustawiona na 0 a nie na 1 i w stepsah w ostatnim warunku if powinno być al<=0 a nie al=0 już to poprawiam i daje link ^^ >>Download<< Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi