LionX Dagger Opublikowano 7 Lipca 2007 Udostępnij Opublikowano 7 Lipca 2007 Witam mam małe pytanko ja zrobić ową rzecz otóż mam np. taką kamerę change_x=(display_mouse_get_x()-512)/16 change_y=(display_mouse_get_y()-384)/16 direction-=change_x zdirection-=change_y display_mouse_set(display_mouse_get_x()-change_x*10,display_mouse_get_y()-change_y*10) xt=x+cos(direction*pi/180); yt=y-sin(direction*pi/180); zt=z+sin(zdirection*pi/180); d3d_set_projection(x,y,z, xt,yt,zt, 0,0,1); i chciał bym by mi się obracała o 360' w górę i w dół pomożecie ^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 7 Lipca 2007 Udostępnij Opublikowano 7 Lipca 2007 Ja może pokażę?? var myszx, myszy; myszx=display_mouse_get_x()-display_get_width()/2; myszy=display_mouse_get_y()-display_get_height()/2; direction+=myszx/5; zdir+=myszy/5; display_mouse_set(display_get_width()/2,display_get_height()/2); xt=x+cos(direction*pi/180); yt=y-sin(direction*pi/180); zt=z-tan(degtorad(zdir)); d3d_set_projection(x,y,z, xt,yt,zt, 0,0,1); if (zdir>89) { zdir=89; } if (zdir<-89) { zdir=-89; } I to cała filozofia :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 7 Lipca 2007 Autor Udostępnij Opublikowano 7 Lipca 2007 Coś się pośpieszyłeś bo to co dałeś nie działa do końca poprawnie ^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 7 Lipca 2007 Udostępnij Opublikowano 7 Lipca 2007 A czy mógłbyś napisać co jest nie tak?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 7 Lipca 2007 Autor Udostępnij Opublikowano 7 Lipca 2007 nie to że mam błąd tylko nie obraca się o 360' obraca się o 90' w obie strony i tyle Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 7 Lipca 2007 Udostępnij Opublikowano 7 Lipca 2007 ale o 360 w górę i duł?? O.o nigdy takiego czegoś nie widzialem Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 7 Lipca 2007 Autor Udostępnij Opublikowano 7 Lipca 2007 No ale oto właśnie się pytam Jak by kto chciał wiedzieć jaką kamerę chce zrobić dobrym przykładem takiej kamery jest Edytor planet w grze seriou sam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 7 Lipca 2007 Udostępnij Opublikowano 7 Lipca 2007 var myszx, myszy; myszx=display_mouse_get_x()-display_get_width()/2; myszy=display_mouse_get_y()-display_get_height()/2; direction+=myszx/5; zdir+=myszy/5; display_mouse_set(display_get_width()/2,display_get_height()/2); xt=x+cos(direction*pi/180); yt=y-sin(direction*pi/180); zt=z+zdir/10 d3d_set_projection(x,y,z, xt,yt,zt, 0,0,1); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 7 Lipca 2007 Autor Udostępnij Opublikowano 7 Lipca 2007 Bez obrazy ale czy ty testujesz kod zanim go dasz ?? dalej nic z tego Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 7 Lipca 2007 Autor Udostępnij Opublikowano 7 Lipca 2007 sorry za double posta ale chciałem zwrócić waszą uwagę na chwilkę na ten temat i nie chciałem zakładać kolejnego tematu który i tak ma bezpośredni związek z tym udało się oto wreszcie wykombinowałem jak to zrobić macie ^^ w Create z=0; zdirection=20; xf=0 yf=0 zf=0 xt=0 yt=0 zt=0 strona=0 a w Draw draw_set_color(c_white) //get half screen size display_w=display_get_width()/2; display_h=display_get_height()/2; //get change change_x=(display_mouse_get_x()-display_w); change_y=(display_mouse_get_y()-display_h); //move camera if strona=0 direction-=change_x/16; else if strona=1 direction+=change_x/16; if strona=0 zdirection+=change_y/12; else if strona=1 zdirection-=change_y/12; //limit z if strona=0 { if zdirection<-89.99 { zdirection=-89.99 strona=1 direction+=180 } else if zdirection>89.99 { zdirection=89.99 strona=1 direction+=180 }} else if strona=1 { if zdirection>89.99 { zdirection=89.99 strona=0 direction+=180 } else if zdirection<-89.99 { zdirection=-89.99 strona=0 direction+=180 }} //center mouse display_mouse_set(display_w,display_h); //from xf=x; yf=y; zf=z; //to xt=xf+cos(degtorad(direction)); yt=yf-sin(degtorad(direction)); zt=zf-tan(degtorad(zdirection)); //draw if strona=0 d3d_set_projection_ext(xf,yf,zf, xt,yt,zt, 0,0,1,41.13,1.33,0,100); if strona=1 d3d_set_projection_ext(xf,yf,zf, xt,yt,zt, 0,0,1,-41.13,1.33,0,100); a teraz dodatkowe pytanko o tuż mam taki kod chodzenia if (keyboard_check(ord('W'))) speed=Scr_Up else if (keyboard_check(ord('S'))) speed=Scr_Down else speed=0 if keyboard_check(ord('D')) //przesuniecie w prawo { xn = x + Scr_Up*sin(direction*pi/180) yn = y + Scr_Up*cos(direction*pi/180) x = xn y = yn } else if keyboard_check(ord('A')) //przesuniecie w lewo { xn = x + Scr_Down*sin(direction*pi/180) yn = y + Scr_Down*cos(direction*pi/180) x = xn y = yn } if keyboard_check(ord('C')) { z += Scr_Down } else if keyboard_check(vk_space) { z += Scr_Up } gdzie : Scr_Up=20 Scr_Down=-20 i teraz chciał bym by gracz szedł tam gdzie patrzę i to dosłownie czyli wiecie takie innymi słowem lewitowanie jak w wielu grach gdy się użyje kody XP to jak pomożecie mi ^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 7 Lipca 2007 Udostępnij Opublikowano 7 Lipca 2007 pokombinuj z zf+tan(degtorad(zdirection))*speed; chyba powinno wystarczyć xP Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi