blondi Opublikowano 19 Sierpnia 2009 Opublikowano 19 Sierpnia 2009 Siema :rolleyes: ...mam mały problem a w sumie zapytanie. W mojej grze którą aktualnie robie i mam zamiar skończyć tym razem zdarza się że za dużo jest obiektów itd.Ujme to tak załóżmy że zabijam 300 stworów i chce żeby na ziemi zostały ich zwłoki jak i krew ale: po jakimś czasie gra się tnie niesamowicie... da się coś z tym zrobić i czy można zrobić coś takiego że obraz background jak i sprite krwi i zwłok zapisuje jako bmp np jezeli liczba obiektow krwi i ciał dojdzie do 1001i wtedy zamiast normalnego backgrounda wczytywać tego z tą krwią?Chyba że jest inny sposób...pomóżcie... :crying:
Makary155 Opublikowano 19 Sierpnia 2009 Opublikowano 19 Sierpnia 2009 Rysować trupy na surface, więcej nie powiem.
art22pl Opublikowano 19 Sierpnia 2009 Opublikowano 19 Sierpnia 2009 da się , jeżeli to 2d to możesz przy obiekcie ciała wpisać do alarmu[0] " if instance_number(nazwacial)>100 instance_destroy() alarm[0]=10 " to do alarmu a w create " alarm[0]=10 " może ci pomoże a co do zmiany też można alarmem stwórz alarm [1] sprite_replace czyli zmiana sprita na tego z krwią w create alarm[1]=200 jeżeli to nie pomoże można spróbować bardziej zaawansowanego sposobu ;) albo tak jak Makary155 u góry napisał ;)
blondi Opublikowano 19 Sierpnia 2009 Autor Opublikowano 19 Sierpnia 2009 hmmm...surface...z tym tak myślałem ale jest mały kłopot...ja nie umiem na surface nic...:( moje stwory mają w alarmie ustawione że znikają starałem się dawać jak najmniej...mam krew jako osobny obiek i trupa tez.mają w alarmach poustawiane tak ok 2000 żeby nie znikały za szybko...bo chodzi mi o to by gra wydoiła nawet na trupach...A jezeli miałbym robić na surface to prosłbym o dużą pomoc...
Jaklub Opublikowano 19 Sierpnia 2009 Opublikowano 19 Sierpnia 2009 to powiem tak: - tworzysz tyle powierzchni (surface), żeby zapełniły całą planszę. można też jedną dużą, ale nie polecam (kiedyś tak zrobiłem i gra mało komu działała). - zamaluj je odpowiednim kolorem, który będzie robił za przeźroczysty ("draw_clear"). - rysujesz powierzchnię co stepa, komendą "draw_surface", czy jakoś. - krew, trupy, itp. rysujesz na odpowiednich powierzchniach tak jak normalnie, na ekran. przed rysowaniem trzeba użyć komendy "surface_set_target", po operacji - "surface_reset_target". - po grze kasujesz powierzchnię ("surface_free"). nie jestem pewien, czy kroki 1 - 3 są poprawne, ale 4 i 5 na pewno są.
ZeroXbot Opublikowano 19 Sierpnia 2009 Opublikowano 19 Sierpnia 2009 Sorry, że nie na temat, ale też się nie znam na surface'ach i chciałbym zapytać, czy one jakby "optymalizują" rysowanie? Chyba wiecie o co mi chodzi, a pytam bo tak zrozumiałem z waszych odpowiedzi.
Jaklub Opublikowano 19 Sierpnia 2009 Opublikowano 19 Sierpnia 2009 szybciej jest użyć jednego surface'a zamiast setek obiektów. gorzej z dostosowaniem ich do gównianej pamięci GPU komputerów większości.
ZeroXbot Opublikowano 19 Sierpnia 2009 Opublikowano 19 Sierpnia 2009 Znaczy ja nie uzywam surface'ów, ale w niektórych przypadkach (jeśl się da) to obiekty zastępuje jednym z długim drawem. Surface byłby lepszy?
blondi Opublikowano 19 Sierpnia 2009 Autor Opublikowano 19 Sierpnia 2009 Najbardziej zalezy mi na tym ze nawet przy ilosci zalozmy 200 trupow i tylu samych obiektow krwi ktore ma robic surface plus te 'zyjace' nie spowoduje eksplozji w postaci paru fpsow...
Jaklub Opublikowano 19 Sierpnia 2009 Opublikowano 19 Sierpnia 2009 rysowanie surface jest szybsze od 200 obiektów trupów i kolejnych 200 obiektów krwi. ale pamiętaj, że przerabianie surface na sprita jest cholernie wolne, trzeba rysować od razu surface. no i poprawię cię: surface NIE ROBI obiektów. surface jest jak kartka papieru - rysujesz na niej. na surface można narysować np. trupy właśnie.
pablo1517 Opublikowano 19 Sierpnia 2009 Opublikowano 19 Sierpnia 2009 Można i bez surface'a zastąpić 1000 trupów jednym obiektem. Obiekt miały sobie 1000 miejsce w tablicy 2 wymiarowej i zapisane x, y, rodzaj trupa i rysowalby potem na podstawie tablicy to.
Jaklub Opublikowano 19 Sierpnia 2009 Opublikowano 19 Sierpnia 2009 a jakbyś miał ponad 1000 trupów, trzeba byłoby zacząć usuwać, ale faktycznie, pomysł niezły.
blondi Opublikowano 19 Sierpnia 2009 Autor Opublikowano 19 Sierpnia 2009 O tysiaku to nawet nie mysle.ale ta takica oprucz x i y musialaby tez zapisywac kat tego sprite.i nawet nie mam pojecia jak zrobic to tak w tablicy ze kazdy trup zapisywalby pod tablice ta x y i kat ewentualnie jak tak sie da...a do tego 5 rodzaji przeciwnikow i co za czym idzie 5 rodzaji miesa na ziemi do tego zapisywanie tego i wogole.nie mam bladego pojecia jak to zrobić w ogole.nigdy nie korzystałem z takich patentow...zreszta nigdy nie robilem gry w ktorej przeciwnicy sie wysypuja w takiej ilosci.
Markar Opublikowano 20 Sierpnia 2009 Opublikowano 20 Sierpnia 2009 Nie jestem pewien czy to pomoże, ale możesz zwiększyć prędkość roomu, gra będzie chodziła szybciej(chyba), nie jestem pewien czy to zadziała, ale możesz spróbować.
Jaklub Opublikowano 20 Sierpnia 2009 Opublikowano 20 Sierpnia 2009 zamiast na tablicach lepiej zrobić to na listach. sprawdź w dokumentacji, korzystanie z nich to banał. robisz sobie np. 4 listy (x, y, kąt i rodzaj flaków), a później gdy ktoś ginie, dodaje odpowiednie wartości do tych list.
blondi Opublikowano 20 Sierpnia 2009 Autor Opublikowano 20 Sierpnia 2009 heh...sam już nie wiem...poczytam poprubuje...póki co zmniejszyłem viewa z 1024*768 na 800*600 i troche przyśpieszyło...dam zaraz screena mniejwięcej co się dzieje na planszy kiedy spada...
blondi Opublikowano 20 Sierpnia 2009 Autor Opublikowano 20 Sierpnia 2009 ech tu macie screena kiedy mi fps spadły dość dyrstycznie w dół...:( nie patrzcie nawet na trupy bo one i tak znikaja po chwili...bo jak nie to wogóle zamiast na 60 fps gra chodziłaby na 6...:/ a z tymi listami mi nie wychodzi a z surface to wogóle nie mam pojęcia jak się za to zabrać...ech:( p.s.sory za doubla...
blondi Opublikowano 20 Sierpnia 2009 Autor Opublikowano 20 Sierpnia 2009 Hura!udalo mi sie zrobic na surface.przeczytalem tut ,usiadlem kombinowalem. I voila!dzieki wam wszystkim za pomoc!
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ę