Judei Opublikowano 31 Października 2009 Udostępnij Opublikowano 31 Października 2009 Cześć i czołem! Pytacie skąd się... a nie. Ogólnie chciałem was przywitać w tym radosnym dniu, kiedy to zostałem zrzucony przez rząd USA na tyły frontu zachodniego, gdzie źli, podli i wredni naziści po raz to kolejny starają się zdominować świat. Pasaty, które pomyliły miejsce swojego występowania i miast wiać na równiku, przeniosły się na tereny położone na wyższej szerokości geograficznej przeniosły mnie na to forum, bym mógł zasięgnąć porady ludzi bardziej doświadczonych w pewnych aspektach życia, ludzi wyposażonych w słowniki ortograficzne i obdarzonych hojnie przez Zeusa w wiedzę, którą staram się posiąść. O, stąd się wziąłem. Więc tak, chciałem sobie zrobić coś a'la latarkę i ograniczyć pole widzenia gracza poprzez zabazgranie mu części ekranu na czarno.GML global.light_surface = surface_create(view_wview,view_hview);Skrypt, którym tworzę mojego surface.GML surface_set_target(global.light_surface)draw_clear(c_black)draw_set_blend_mode(bm_add) with (object_sightfield) {draw_sprite_ext(sprite_light,0,object_man.x-view_xview,object_man.y-view_yview,light_scale,light_scale,image_angle,c_white,0.8)draw_sprite_ext(sprite_light2,0,object_man.x-view_xview,object_man.y-view_yview,0.3,0.3,0,c_white,0.8) }draw_set_blend_mode(bm_normal) surface_reset_target() To umieściłem w stepie obiektu, stanowiącego istotę wszechrzeczy, o niezwykle trafnej nazwie: object_control. (Kod zamieszczony jeszcze wyżej znajduje się w jego "Create". A w drawie mam nawalone masę skryptu, nie mającego wspólnego nic z tym surfacem. No prócz tego:GML draw_surface(global.light_surface,view_xview,view_yview); W efekcie mamy takie cuś:<<Zdjęcie 1>> Z wyłączonym obiektem odpowiedzialnym za całe zamieszanie z surfacem.<<Zdjęcie 2>> Z włączonym obiektem odpowiedzialnym za surface. Jak widać, na drugim screenie ucina mi kawałek ekranu, ucina, a może zmienia rozdzielczość i kawałek obrazu znika w czarnej otchłani Hadesu. Nie mam pojęcia, mam nadzieję że jakoś pomożecie mi odkryć, o co tu chodzi. To był pierwszy problem, teraz drugi, trochę mniejszy, ale dla mnie równie dziwny, moim zdaniem nie powinien występować.GML global.a=sound_add("Resources/ARPreload.wav",1,1)global.b=sound_add("Resources/ARP.wav",1,1) Definiuje sobie we władcy wszechrzeczy dwa pliki dźwiękowe. (Tak, nazwy i ścieżka są podane dobrze, na 100% pliki istnieją w tym katalogu i na 100% są to odpowiednie pliki.) Potem odwołuję się do nich w tablicach odpowiedzialnych za definicję poszczególnych broni w object_man (którym jest gracz):GML bron[0,13]= global.b //Dźwięk wystrzałubron[0,14]= global.a //Dźwięk przeładowania</span> Jest to tylko kawałek całej tablicy. Dalej, podczas gdy gracz strzela mam taki kod:GML sound_play(bron[gun,13]) A gdy przeładowuje:GML sound_play(bron[gun,14]) I nie ważne jaka operacja zostanie przeprowadzone, tak przy strzelaniu jak i ładowaniu występuję dźwięk przeładowania. Co ciekawsze, jak zamienię kolejność przy definiowaniu całego bajeru, przy każdej operacji mam dźwięk wystrzału. Zapewne są to jakieś głupie błędy, a mój wątły umysł nie jest w stanie ich dojrzeć. Ale cóż, dlatego tutaj piszę, żebyście mogli mnie oświecić, co mam nadzieję, nastąpi. (Wiem, wiem... nawaliłem strasznie dużo kodu, ale zrobiłem to dlatego, że nie chcę dawać linku do moich wypocin, a bez odpowiednich wiadomości to możecie co najwyżej wlepić mi warna.) W razie czego, służę podaniem szerszej gammy informacji. ^^Pozdrawiam, Judei. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 1 Listopada 2009 Udostępnij Opublikowano 1 Listopada 2009 Jeśli uruchomisz grę w oknie jest tak samo? Ed: I na przyszłość - we władcy wszechrzeczy w evcencie Room end/Game End daj GML surface_free(costam); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Judei Opublikowano 1 Listopada 2009 Autor Udostępnij Opublikowano 1 Listopada 2009 Tak, jak odpalam grę w oknie to jest tak samo. Ustawienia w roomie wyglądają tak: Click Tutaj raczej błędu nie ma, ale lepiej podać. A widelec okaże się, że pacnąłem jakiś głupi błąd. ^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 1 Listopada 2009 Udostępnij Opublikowano 1 Listopada 2009 Daj screena jak wygląda gra gdy malujesz cień na bm_normal (usuń linijkę draw_set_blend_mode(bm_subtract) z drawa władcy wszechrzeczy) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Judei Opublikowano 1 Listopada 2009 Autor Udostępnij Opublikowano 1 Listopada 2009 To cały czas jest rysowane na bm_normal, nie wiem gdzie zauważyłeś tam bm_subtract. Zaraz zwyczajnie przepiszę kod, i zobaczymy co będzie się działo, bo jest to dla mnie niezrozumiałe. Edit: Moje bystre oczka zauważyły, że wszystko wraca do "normy" bo wywaleniu ze stepa linijki surface_reset_target(). Efekt tego zabiegu jest oczywisty, pozbywam się jednego błędu, ale bez tej linijki będziemy mieli klops. Kolejny Edit: Problem zażegnany, błąd występuje tylko gdy w ustawieniach rooma, w "Port on Screen" w "W" wpiszę wartości większe od 1000. Interesujące, ale teraz działa jak należy. 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ę