Kewin Opublikowano 9 Lipca 2020 Opublikowano 9 Lipca 2020 Nie wiem jak zrobić kamerę tak jak w grze np. Hotel Empire Tycoon. Próbowałem znaleźć jakieś tutoriale ale nie znalazłem takiego ruchu kamery. Ma to działać na mobilnych urządzeniach. Ktoś wie jak to zrobić?
Administratorzy gnysek Opublikowano 9 Lipca 2020 Administratorzy Opublikowano 9 Lipca 2020 Generalnie nie ma różnicy czy palcem czy myszką. Proces nie jest taki trudny i dotyczy ogólnie przesuwania czegoś w grze, oczywiście piszę z głowy wiec musisz przetestować i dostroić, mogłem pomylić plusy i minusy w drugiej części: W Create tworzysz zmienne, które przetrzymują pozycje myszki i kamery gdy zaczynaliśmy przesuwanie mx = 0; my = 0; vx = 0; vy = 0; W mouse button pressed: mx = mouse_x; my = mouse_y; vx = <view_x>; // (zależnie czy GMS1 czy 2 to będzie view_x[0] albo camera_get_view_x(view_camera[0]); vy = <view_y>; // jak wyżej W mouse button down: GMS 1: view_x = vx + (mouse_x - mx); view_y = vy + (mouse_y - my); GMS2: camera_set_view_pos(view_camera[0], vx + (mouse_x - mx), vy + (mouse_y - my)); I to wszystko. Oczywiście można próbować to jakoś upłynnić, dodać zwiększanie prędkości przesuwania itp., no ale to już jest znacznie, znacznie więcej roboty.
Kewin Opublikowano 9 Lipca 2020 Autor Opublikowano 9 Lipca 2020 Dobra, dzieki bardzo jutro zobaczę czy dziala
Kewin Opublikowano 10 Lipca 2020 Autor Opublikowano 10 Lipca 2020 20 godzin temu, gnysek napisał: Generalnie nie ma różnicy czy palcem czy myszką. Proces nie jest taki trudny i dotyczy ogólnie przesuwania czegoś w grze, oczywiście piszę z głowy wiec musisz przetestować i dostroić, mogłem pomylić plusy i minusy w drugiej części: W Create tworzysz zmienne, które przetrzymują pozycje myszki i kamery gdy zaczynaliśmy przesuwanie mx = 0; my = 0; vx = 0; vy = 0; W mouse button pressed: mx = mouse_x; my = mouse_y; vx = <view_x>; // (zależnie czy GMS1 czy 2 to będzie view_x[0] albo camera_get_view_x(view_camera[0]); vy = <view_y>; // jak wyżej W mouse button down: GMS 1: view_x = vx + (mouse_x - mx); view_y = vy + (mouse_y - my); GMS2: camera_set_view_pos(view_camera[0], vx + (mouse_x - mx), vy + (mouse_y - my)); I to wszystko. Oczywiście można próbować to jakoś upłynnić, dodać zwiększanie prędkości przesuwania itp., no ale to już jest znacznie, znacznie więcej roboty. No właściwie to nie działa
Administratorzy gnysek Opublikowano 10 Lipca 2020 Administratorzy Opublikowano 10 Lipca 2020 Podpowiedz jaka wersja GMS, sprawdzę btw. już widzę, że dla GMS1 powinno być np.view_x[0] więc jakieś błędy były
Kewin Opublikowano 10 Lipca 2020 Autor Opublikowano 10 Lipca 2020 4 godziny temu, gnysek napisał: Podpowiedz jaka wersja GMS, sprawdzę btw. już widzę, że dla GMS1 powinno być np.view_x[0] więc jakieś błędy były I jak?
Administratorzy gnysek Opublikowano 10 Lipca 2020 Administratorzy Opublikowano 10 Lipca 2020 Jestem w pracy, na linuxie, nie ma szans na razie
Administratorzy gnysek Opublikowano 10 Lipca 2020 Administratorzy Opublikowano 10 Lipca 2020 @Kewin Wszystko w kodzie się zgadza, pewnie użyłeś zwykłego eventu mouse left pressed/down, zamiast global mouse left pressed/down. Proszę, oto gotowy przykład (podzieliłem tylko w camera set view różnicę przez 2, wolniej wtedy kamera się przesuwa 2x): https://gmclan.org/up23_18_camera_drag.html
Kewin Opublikowano 11 Lipca 2020 Autor Opublikowano 11 Lipca 2020 A jak zrobić żeby kamera ruszała się na odwrót niz teraz, żeby bylo tak że jak jedziesz palcem w góre to kamera w dół. Teraz jest tak że jek przejedziesz palcem do góry to kamera idzie do góry a chciałbym na odwrót to zrobić.
Administratorzy gnysek Opublikowano 11 Lipca 2020 Administratorzy Opublikowano 11 Lipca 2020 No to jest już matematyka z podstawówki, odwróć znak + na - przy vy + (mouse_y - my)
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ę