TO_mek Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 Witam! W DRAW mam: GML draw_sprite(sprite0,0,x,y); if view_current==1 { draw_text(mouse_x,mouse_y,"v1"); } if view_current==0 { draw_text(mouse_x,mouse_y,"v0"); } i dziala OK jednak jak dorzuce do tego nadanie zmiennej to przestaje wszystko dzialac GML draw_sprite(sprite0,0,x,y); if view_current==1 { draw_text(mouse_x,mouse_y,"v1"); zmienna=1; } if view_current==0 { draw_text(mouse_x,mouse_y,"v0"); zmienna=0; } w create GML zmienna=-1 w step GML if zmienna<>-1 then { show_message("dziala"); zmienna=-1; Czy nie można w 1 obiekcie uzyskać tego by w draw nadawało zmiennej wartość a w stepie jej używało. Tu nawet nie działa pierwsze wyświetlenie zaraz po utworzeniu obiektu A wystarczy zaremować nadawanie wartości zmiennej zmienna w draw i zaczyna działać Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 U mnie działa, ale to i tak będzie nieprzydatne, bo zmienna po zakończeniu eventu Draw zawsze przyjmie wartość 1. To dlatego, że event Draw wywołuje się tyle razy, ile jest viewów, więc siłą rzeczy ostatnią instrukcją wykonaną w Draw jest nadanie zmiennej wartości 1. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TO_mek Opublikowano 20 Sierpnia 2011 Autor Udostępnij Opublikowano 20 Sierpnia 2011 U mnie działa, ale to i tak będzie nieprzydatne, bo zmienna po zakończeniu eventu Draw zawsze przyjmie wartość 1. To dlatego, że event Draw wywołuje się tyle razy, ile jest viewów, więc siłą rzeczy ostatnią instrukcją wykonaną w Draw jest nadanie zmiennej wartości 1. Zapomniałem napisać, że mam 2 viewy a obiekt w stepie ma jeszcze: GML x=mouse_x div 128 *128 y=mouse_y div 8 *8 czyli obiekt jest doklejony do myszy. Wydawało mi się, że view_current właśnie do tego służy by odczytać na którym widoku rysuje się dany sprajt. Może napiszę co chcę uzyskać. Mam rooma 5000x800 i 2 widoki: view0 zaczepiony w 0,0 o wymiarach 200,800 ale wyświetlający kawałek rooma z pozycji 4800,800, view1 o wymiarach 1080,800 zaczepiony w punkcie 201,800, pokazujący room od 0,0 do 4800,800 (ten widok jest ruchomy). Czyli oba widoki tworzą na ekranie okno o wymiarach 1280,800, z lewej zawsze mam view0 w stałym miejscu 0,0 a z prawej mam ruchomy view1. Do kursora myszy mam podpięty obiekt który ma m.in. zastąpić rysunek kursora (czyli ten obiekt o którym pisałem wyżej) i chcę uzyskać taki efekt by sprajt zmieniał się nad widokiem 0 na jakiś wskaźnik_spr a nad widokiem 1 na inny sprajt. I to działa bez problemu. Ale przy okazji chcę także przekazywać zmienną w której zapisane będzie nr widoku nad którym aktualnie znajduje się obiekt i to już niestety nie działa (pokazuje wartość jakby zawsze był view0 aktywny). EDIT: Na razie sprawdzanie widoku zrobiłem inaczej. W step dałem GML if mouse_x < 4800 then { aktywny_widok:=1; } else { aktywny_widok:=0; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 20 Sierpnia 2011 Udostępnij Opublikowano 20 Sierpnia 2011 GM nie sprawdza automatycznie, w którym viewie znajduje się dany obiekt, trzeba to zrobić samemu. To sprawdzanie widoku, co napisałeś, jest wystarczającym rozwiązaniem. 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ę