ZyperPL Opublikowano 6 Maja 2011 Udostępnij Opublikowano 6 Maja 2011 Cześć ;) Jak każdy wie, optymalizacja gry jest ważna. Znacie jakieś dobre sposoby optymalizacji gier w GMie? Ja miałem pomysł, aby deaktywować obiekty daleko od gracza. Napisałem takie coś: GML if distance_to_object(postac)>500 instance_deactivate_object(self) else instance_activate_object(self) Ale obiekty po deaktywacji nie wracają do początkowego stanu i ich po prostu nie widać. Wie ktoś w czym problem? Z góry dzięki :P Mam jeszcze małe pytanie, jak umieścić obiekt A między dwoma innymi obiektami? Próbowałem dzielić distance_to_object na pół lub pozycje x i y. Ale to nie działa. Jakieś pomysły? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 6 Maja 2011 Udostępnij Opublikowano 6 Maja 2011 no jasne. skoro jest zdezaktywowany, to dlaczego ma działać? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 6 Maja 2011 Udostępnij Opublikowano 6 Maja 2011 Warto pamiętać, że zdezaktywowany obiekt nie może wykonywać kodu. Więc jeżeli potrzebujesz go aktywować, musisz to zrobić innym obiektem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 6 Maja 2011 Udostępnij Opublikowano 6 Maja 2011 Cytat dokumentacja: Tak więc, jeżeli na przykład chcesz deaktywować wszystkie instancje poza viewem, a aktywować te wewnątrz, powinieneś umieścić taki kod w step poruszającego się obiektu ( np. postaci gracza ) kod: { instance_activate_all(); instance_deactivate_region(view_xview[0],view_yview[0], view_wview[0],view_hview[0],false,true); } https://gmclan.org/index.php?wiki=article&zm=101 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZyperPL Opublikowano 6 Maja 2011 Autor Udostępnij Opublikowano 6 Maja 2011 No właśnie z tym mam problem, bo chce deaktywować tylko jeden typ obiektów (o nazwie block). Gdy deaktywuje wszystkie to niektóre, potrzebne nie działają :/ Nie wiem właśnie, jak deaktywować tylko blocki które są poza viewem, a te inne zostawić. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
baca Opublikowano 6 Maja 2011 Udostępnij Opublikowano 6 Maja 2011 Najpierw instance_deactivate_object, później aktywuj region instance_activate_region. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZyperPL Opublikowano 6 Maja 2011 Autor Udostępnij Opublikowano 6 Maja 2011 Wielkie dzięki ;) Działa. A co z viewem pomiędzy dwoma obiektami? Gdy odejmę pozycję pierwszego obiektu od drugiego to coś się psuje i nic nie działa :< Jakieś pomysły? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 6 Maja 2011 Udostępnij Opublikowano 6 Maja 2011 Pokombinuj z lenghdirami :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 6 Maja 2011 Administratorzy Udostępnij Opublikowano 6 Maja 2011 Zmęczony już jestem, ale... może coś takiego? GML var pdir,pdist; pdir = point_direction(A.x,A.y, B.x, B.y); pdist = point_distance(A.x,A.y, B.x, B.y) / 2; C.x = A.x + lengthdir_x( pdist, pdir ); C.y = A.y + lengthdir_y( pdist, pdir ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZyperPL Opublikowano 6 Maja 2011 Autor Udostępnij Opublikowano 6 Maja 2011 Wielkie dzięki mistrzu. Działa. Pozdrawiam i zamykam ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi