Markar Opublikowano 28 Stycznia 2010 Udostępnij Opublikowano 28 Stycznia 2010 Kiedy mam masę biektów w roomie(myśliwce kosmiczne :D) które nawalają się na dodatek pociskami - strasznie gra mi się tnie :/ Chcę aby mi się nie cięło, ale nie mogę deaktywować żadnego obiektu poza viewem :/ I proszę was o pomoc - jak zrobić żeby się tak bardzo nie cięło??? Jedna rzecz która mi pomoże to rysowanie lini od długości 5 pikseli o direction równającym się direction obietu. Próbowałem to zrobić na lenghtdir'ach ale mi nie wychodziło - linie te miały długość około 200 px xD W większości to rysowanie lini zwiększy w dużym stopniu wydajność gry - kiedy są setki pocisków to zamiast rysować sprita strzału(kreski) rysował bym linię, co moim zdaniem zwiększyło by wydajność gry. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 28 Stycznia 2010 Udostępnij Opublikowano 28 Stycznia 2010 Dobrze kombinujesz : P W pocisku: GML draw_line(x,y,lengthdir_x(10,direction),lengthdir_y(10,direction)); Mogłem pomylić kolejność argumentów :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markar Opublikowano 28 Stycznia 2010 Autor Udostępnij Opublikowano 28 Stycznia 2010 Hmmm... Dalej to samo, tak samo kombinowałem, ale dalej linia jest od pocisku do 10-tego piksela roomu. Jak dałem tak: GML draw_line(x,y,lengthdir_x(x+10,direction),lengthdir_y(y+10,direction)); To było mniej więcej tak samo :/ co robić? EDIT: Poradziłem sobie :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 28 Stycznia 2010 Udostępnij Opublikowano 28 Stycznia 2010 Tfu! Mój błąd! GML draw_line(x,y,x+lengthdir_x(10,direction),y+lengthdir_y(10,direction)); Trza było jeszcze x i y dodać do wyniku funkcji. W ten sposób sobie poradziłeś? ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markar Opublikowano 28 Stycznia 2010 Autor Udostępnij Opublikowano 28 Stycznia 2010 Tak, wydajność się o wiele zwiększyła, a jak prawie nic nie pracuje w tle to działa jeszcze lepiej:D Ale i tak przydadzą się jakieś pomysły na zwiększenie wydajności(byle nie takie jak mój pomysł na zrobienie całej gry samym(własnym)systemem wieloktów, nawet dodałem skrypt rysowania skrzynki, bardzo ładnie mi wychodziła ;)) ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 28 Stycznia 2010 Udostępnij Opublikowano 28 Stycznia 2010 A jak dużo jest tych pocisków? Paręset? Parę tysięcy? Bo jeśli bardzo dużo to zamiast każdego reprezentować jako oddzielną instancję możesz je wszystkie stablicować w jednym obiekcie i tam rysować. Oczywiście to ci utrudni trochę pracę, bo zamiast prostego eventu do kolizji będziesz musiał używać np. collision_line(), albo collision_point Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markar Opublikowano 28 Stycznia 2010 Autor Udostępnij Opublikowano 28 Stycznia 2010 Przy większej ilości myśliwców to kilkaset nawet(każdy niszczy się 100 steepów(czy czegoś tam w alarmie ustawionym na 100 poprostu) od stworzenia), jak będą różnego rodzaju niszzczyciele to pocisków będzie nawet po kilka tysięcy :/ Bo niszczyciel będzie miał kilka laserów, wyrzutnię plazmy, kilka zwykłych działek... Mógł bym to wsumie stablicować(jak to nazwałeś), ale potrzebował bym pomocy bo nigdy rablic nie używałem :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markar Opublikowano 29 Stycznia 2010 Autor Udostępnij Opublikowano 29 Stycznia 2010 Właśnie sprawdziłem i przy ilości 350 myśliwców ilość pozisków dochodzi do 1000 :/ Fps'y spadają do ok. 11 :/ Powiedzcie jak mogę zwiększyć fps'y, może room speeda dostosowywać do ilości myśliwców? I każdy pocisk zadaje inną liczbę obrażeń, np. od myśliwca V5 30 obrażeń myśliwcom V5, a myśliwcom V6 zadaje tylko 20 obrażeń. V6 zadaje 45 obrażeń myśliwcom V5. Ps sory za double posta, ale pewnie nikt nie zauważył by tego posta. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
WilkAss Opublikowano 29 Stycznia 2010 Udostępnij Opublikowano 29 Stycznia 2010 Aby się nie cieło mozesz np: Zrobić że pociski po przeleceniu pewnej odległości się niszczą Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markar Opublikowano 29 Stycznia 2010 Autor Udostępnij Opublikowano 29 Stycznia 2010 Tak zrobiłem, gdybym tak nie robił fpsów miałbym ok. 1, a liczba pocisków przekraczała by liczbę kilkaset tysięcy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ch3matic Opublikowano 29 Stycznia 2010 Udostępnij Opublikowano 29 Stycznia 2010 Pomyśl nad zmienieniem ogólnie trochę gry, żeby bitwy były mniejsze/pogrupuj statki w oddziały (np jeden obiekty reprezentuje 6 statków itp), przypuszczamy, że i tak ciężko ogarnąć taką bitwę na 350 statków. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markar Opublikowano 29 Stycznia 2010 Autor Udostępnij Opublikowano 29 Stycznia 2010 Taaa... Ciężko, poprostu dodam ograniczenie tworzenia statków dla komputera i gracza do 60, wtedy powinno działać dobrze ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 29 Stycznia 2010 Administratorzy Udostępnij Opublikowano 29 Stycznia 2010 Spróbuj nie rysować obiektów które są poza ekranem (dodać np. w draw jakąś funkcję która sprawdza, czy obiekt jest w viewie czy nie). Wiem, że to doda trochę kodu do przetworzenia, ale może okazać się, że nie rysowanie tego czego nie widać na ekranie przyspieszy ogólnie FPS (zazwyczaj draw spowalnia grę, przydługie skrypty prędzej powodują klatkowanie). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 29 Stycznia 2010 Udostępnij Opublikowano 29 Stycznia 2010 Można też usuwać pociski, gdy są poza roomem. A jeśli masz ustawiony room_speed na 60, to zmień na 40. Zmiana prawie niezauważalna, tylko trzeba trochę pozmieniać kod, np. zamiast speed = 2, to speed = 3 itp. Można wyłączyć kursor i rysować w pozycji myszki sprite'a, np. celowniczek. (Chyba) będzie szybsze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 29 Stycznia 2010 Administratorzy Udostępnij Opublikowano 29 Stycznia 2010 Można też usuwać pociski, gdy są poza roomem. A jeśli masz ustawiony room_speed na 60, to zmień na 40. Zmiana prawie niezauważalna, tylko trzeba trochę pozmieniać kod, np. zamiast speed = 2, to speed = 3 itp. Można wyłączyć kursor i rysować w pozycji myszki sprite'a, np. celowniczek. (Chyba) będzie szybsze. Bez sensu ta zmiana FPSów. Poza tym, jak zmniejszasz o 1/3, to speed 2 powinien zamienić się na 2,66 a nie 3. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 29 Stycznia 2010 Udostępnij Opublikowano 29 Stycznia 2010 2*60=120 3*40=120 2,66*40=106,4 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 29 Stycznia 2010 Administratorzy Udostępnij Opublikowano 29 Stycznia 2010 Hmm, to ja coś źle policzyłem w takim razie. Mea culpa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markar Opublikowano 29 Stycznia 2010 Autor Udostępnij Opublikowano 29 Stycznia 2010 Ooooo Gnysku jesteś wielki! Fpsy znacząco się podniosły, ale i tak przydadzą się inne pomysły ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Morro Opublikowano 30 Stycznia 2010 Udostępnij Opublikowano 30 Stycznia 2010 Jeśli działasz na particlach pamiętaj aby co pewien czas czyścić je z pamięci. part_system_clear() chyba to było. Usuwanie emiterów, zmniejszenie liczby wystrzeliwanych particli na step. Poza tym, jeśli masz wstawione wraki statków to nie przetrzymuj ich w obiektach tylko rysuj na nieruchomym surface. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markar Opublikowano 30 Stycznia 2010 Autor Udostępnij Opublikowano 30 Stycznia 2010 Mógł byś mi przedstawić w jaki sposób na surface rysować nieruchome(chociaż wolę ruchome żeby szczątki się kręciły) sprite szczątków i po jakimś czasie usuwać te szczątki? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 30 Stycznia 2010 Filar Społeczności Udostępnij Opublikowano 30 Stycznia 2010 Jeśli chodzi o usuwanie to daj w stepie image_alpha-=0.002 if(image_alpha=0) instance_destroy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markar Opublikowano 2 Lutego 2010 Autor Udostępnij Opublikowano 2 Lutego 2010 Przydało by się troszku pomysłów jeszcze, kiedy mam około dziesięciu oddziałów myśliwców i kilka fregat z 3-ema działkami(2 takie jak myśliwce mają(tylko lepsze)i 1 laserowa ;)) to fpsów mam niby około 30, no ale już przy większych ilościach to 10 fps, 6 fps, 20 fps, 2 fps xD Więc zapodajta pomysła ludziska. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
don_soyer Opublikowano 2 Lutego 2010 Udostępnij Opublikowano 2 Lutego 2010 musiałbyś wyłożyć cały kod na tace bo możemy sobie strzelać w ciemno. musisz po prostu kombinować kombinować i stale patrzeć na zmiany. cóż można więcej Ci powiedzieć... spróbuj cleanmem użyć albo powrzucaj do wątków jakimkolwiek ddlem do tego. widziałem już kilka. poszukaj popytaj na gmcomunity Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lordis Opublikowano 2 Lutego 2010 Udostępnij Opublikowano 2 Lutego 2010 A moim skromnym zdaniem te spadające fps są przyczyną ciągłego wykonywania się jakiegoś "niepotrzebnego kodu" albo tworzenia się niepotrzebnych obiektów. Ja miałem tak w swojm projekcie. Gdy stawiałem murek (myślałem ze stawiam 1) pojawiało się ich w ciągu 1,2 sec (tylko ile trzymałem przycisk myszy) około 200-400 w jednym miejscu. A teraz można sobie wyobrazić jak po zrobieniu kawałka swojej mapy myśląc ze mam około 50 obiektów miałem ich pare tysięcy a gra mi muliła nie samowicie 2-6 fps. Tak więc moja rada to odpal sobie debugera (czerwona strzałka "Run Game in Debug mode") i obadaj czy nie tworzy ci się zaduzo obiektów, czy jakiś obszerny kod nie wykonuje się ciągle itd. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Japanstache Opublikowano 2 Lutego 2010 Udostępnij Opublikowano 2 Lutego 2010 @up Nie chciało mi się czytać całego tematu ale jeśli pociski robisz jeszcze na objectach to nie powinny mieć w ogóle kodu (wszystkie parametry jak szybkość, kierunek i image_angle ustalać przy tworzeniu) i wtedy można z ilością bardziej poszaleć. 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ę