Egzekutor Opublikowano 3 Grudnia 2008 Udostępnij Opublikowano 3 Grudnia 2008 Witam! Mógłby mi ktoś napisać jakiś dość prosty nie skomplikowany kod na mouse_look do gry 3D? Z góry dzięki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ch3mical Opublikowano 3 Grudnia 2008 Udostępnij Opublikowano 3 Grudnia 2008 Nie jestem pewien czy dobrze, ale trzymaj: Obj_player create: { global.camx = x; global.camy = y; global.camsin = sin(direction*pi/180); global.camcos = cos(direction*pi/180); z=16 beta=0 angle_x=90 angle_y=45 window_set_cursor(cr_none) d3d_start(); d3d_set_hidden(true); d3d_set_lighting(false); d3d_set_culling(false); d3d_set_fog(true,c_black,10,300); } Obj_player end_step: { mx=(display_mouse_get_x()/(display_get_width()/2))-1 my=(display_mouse_get_y()/(display_get_height()/2))-1 display_mouse_set(display_get_width()/2,display_get_height()/2) direction+=-mx*angle_x beta+=my*angle_y if(beta>=90)beta=89 if(beta<=-90)beta=-89 global.camx = x; global.camy = y; global.camsin = sin(direction*pi/180); global.camcos = cos(direction*pi/180); } Obj_player draw: { tx=lengthdir_x(cos(degtorad(beta)),direction) ty=lengthdir_y(cos(degtorad(beta)),direction) tz=lengthdir_y(1,beta) d3d_set_projection(x,y,z,x+tx,y+ty,z+tz,0,0,1) } To jest sam mouselook (chyba działa) Jeśli chcesz zobaczyć czy naprawdę działa, musisz dodać jakieś obiekty do gry. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Egzekutor Opublikowano 3 Grudnia 2008 Autor Udostępnij Opublikowano 3 Grudnia 2008 Trochę taki skomplikowany, nie masz czasem jakiegoś w jednym skrypcie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 3 Grudnia 2008 Udostępnij Opublikowano 3 Grudnia 2008 myślisz, że wszystko da się zrobić w jednym skrypcie ? niektóre musisz dać do create, inne do step a jeszcze inne do draw :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Egzekutor Opublikowano 3 Grudnia 2008 Autor Udostępnij Opublikowano 3 Grudnia 2008 Ja na przykład mam w jednym skrypcie mouse_look tylko dziadowy jest. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 3 Grudnia 2008 Udostępnij Opublikowano 3 Grudnia 2008 Ja na przykład mam w jednym skrypcie mouse_look tylko dziadowy jest. no to jak ma nie być dziadowy, to nie może być taki sam nie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SharkyWTB Opublikowano 16 Grudnia 2008 Udostępnij Opublikowano 16 Grudnia 2008 wpisalem kod i po wlaczeniu gry podloga i sufit stoja w miejscu a sciany się "ruszają" co robic? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Egzekutor Opublikowano 16 Grudnia 2008 Autor Udostępnij Opublikowano 16 Grudnia 2008 U mnie jest ok, sprawdź jeszcze raz poprawność wpisania kodu :) EDIT: Spróbuj tak ! scr_mysz GML var sens; sens=0.07;//Szybkosc obracania "Direction" pitch=min(max(pitch-(window_mouse_get_y()-view_hview[0]/2)*sens/70,-90),90); //"sens/150" Szybkosc obracania "Pitch" ( Z Direction ) tym mniej tym szybciej direction-=(window_mouse_get_x()-view_wview[0]/2)*sens; window_mouse_set(view_wview[0]/2,view_hview[0]/2); CREATE GML global.camx = x; global.camy = y; global.camsin = sin(direction*pi/180); global.camcos = cos(direction*pi/180); STEP GML global.camx = x; global.camy = y; global.camsin = sin(direction*pi/180); global.camcos = cos(direction*pi/180); GML alarm[1]=1 if pitch<-3 { pitch=-2.9 } if pitch>3 { pitch=2.9 } if pitch=-3 { pitch=-2.9 } if pitch=3 { pitch=2.9 } I w ALARM 1: załaduj skrypta :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SharkyWTB Opublikowano 17 Grudnia 2008 Udostępnij Opublikowano 17 Grudnia 2008 oooooo nieeeee :(:(:( ___________________________________________ ERROR in action number 1 of Step Event for object player: Error in code at line 3: if pitch<-3 at position 5: Unknown variable pitch Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Driger Opublikowano 17 Grudnia 2008 Udostępnij Opublikowano 17 Grudnia 2008 brak zmiennej "pitch". Zadeklaruj w create obiektu w ktorym potrzebna Ci ta zmienna do obliczen. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Egzekutor Opublikowano 17 Grudnia 2008 Autor Udostępnij Opublikowano 17 Grudnia 2008 no właśnie sorry ale zapomniałem napisać wpisze w CREATE playera: pitch=0 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SharkyWTB Opublikowano 18 Grudnia 2008 Udostępnij Opublikowano 18 Grudnia 2008 bylo dalej to samo ale juz jest WPORZO!!! wystarczyło zamienić kolejność :D (YYYYEEEEEEHAAWWW) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Egzekutor Opublikowano 18 Grudnia 2008 Autor Udostępnij Opublikowano 18 Grudnia 2008 No ja tutaj podałem we złej kolejności :P Ale jak jest ok to ok ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 18 Grudnia 2008 Udostępnij Opublikowano 18 Grudnia 2008 global.camsin = sin(direction*pi/180); global.camcos = cos(direction*pi/180); Słyszałeś o czymś takim jak zamiana stopni na radiany? Funckja degtorad (Degries to radians) bodajże zwraca argument[ 0 ] * pi / 180 :) . 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ę