ZyperPL Opublikowano 1 Marca 2012 Udostępnij Opublikowano 1 Marca 2012 j/w Optymalniej jest zrobić tak: GML draw_circle_color(x,y,3,c_red,c_red,0) czy GML draw_set_color(c_red) draw_circle(x,y,3,0) draw_set_color(c_white) W pierwszej funkcji kolor jest podwójny, w drugiej nie ma kolorów, ale za to zmienia się on dwa razy.. Proszę o pomoc, wiem, że pytanie głupie, ale zależy mi na optymalizacji i wywalam co się da. Narazie udało mi się uzyskać 1500 obiektów bez spadku fpsów, ale nie są komputery lepsze i gorsze, więc wole OPTYMALIZOWAĆ! :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karolo320 Opublikowano 1 Marca 2012 Udostępnij Opublikowano 1 Marca 2012 imo druga opcja optymalniejsza, bo pierwsza sluzy do grandiertu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Marca 2012 Administratorzy Udostępnij Opublikowano 1 Marca 2012 optymnalniej jest namalować to na surface raz :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sernat Opublikowano 1 Marca 2012 Udostępnij Opublikowano 1 Marca 2012 optymnalniej jest namalować to na surface raz :) Niekoniecznie ;) . Opcja druga jest opcją wydajniejszą. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZyperPL Opublikowano 1 Marca 2012 Autor Udostępnij Opublikowano 1 Marca 2012 Dzięki wszystkim! :) A wielkość kulki wpływa na wydajność? Np. jeśli circle ma promień 60 to gra chodzi wolniej niż gdyby miał 6? Alpha na pewno wpływa na wydajność, ale czy wielkość? Jest też w GMie możliwość usunięcia niepotrzebnych zmiennych (image_index,sprite_index,image_angle,image_xscale,image_yscale)? Na razie to wpadłem na pomysł, żeby zamiast tworzenia nowych zmiennych wpisywać istniejące. Np. potrzebuje zmiennej a, która będzie miała wartość 1 i 0 no to używam image_angle itd. ;) Ale usunąć całkiem się nie da, nie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 1 Marca 2012 Udostępnij Opublikowano 1 Marca 2012 Wielkość koła nie wpływa na wydajność bo liczba wierzchołków się nie zmienia. Rysowanie koła możesz zoptymalizować funkcją draw_circle_precision zmniejszając ilość wierzchołków ( im mniejsze chcesz wyświetlić koło tym mniejszą precyzję możesz ustawić ) Np. potrzebuje zmiennej a, która będzie miała wartość 1 i 0 no to używam image_angle To zły pomysł bo zmieniając wartość image_angle obracasz także maskę obiektu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZyperPL Opublikowano 1 Marca 2012 Autor Udostępnij Opublikowano 1 Marca 2012 A o tym, że zmienia się maska to nie wiedziałem ;) Ale dzięki, u mnie i tak nic to nie zmienia, bo maska kolizji jest okrągła w prawie wszystkich obiektach, którem chcem zoptymalizować :) I dzięki za draw_circle_precision :) Pozdrawiam.. Edit: Ojj... Nie działa na 8.0. Coraz bardziej zastanawiam się nad kupnem GMa, ale cena mnie odstrasza :S Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 1 Marca 2012 Udostępnij Opublikowano 1 Marca 2012 Ale ten dodatkowy obrót maski niepotrzebnie obciąża procka chciałeś optymalizacji a wychodzi wręcz przeciwnie. Dodatkowo direction i image_angle jest normalizowane ( przybiera wartości od 0 - 360 ) Po za tym nie widzę sensu w powstrzymywaniu się od tworzenia własnych zmiennych bo w ten sposób zaoszczędzasz małą ilość pamięci. O ile się nie mylę to 64 bity na każdą zmienną. edit: Sorry draw_set_circle_precision() 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ę