pk100 Opublikowano 20 Listopada 2010 Udostępnij Opublikowano 20 Listopada 2010 Witam, Walczę z problemem jak zrobić sterowanie statkiem w przestrzeni ( widok z góry ) tak by miał bezwładność tzn. strzałka w górę dodaje prędkości, strzałki na lewo i prawo obracają pojazdem ale nie skręcają nim jak samochód tylko obrócony dalej leci w kierunku w którym sie rozpędził, dopiero dodanie gazu nadaje mu prędkości w kierunku, w który aktualnie jest zwrócony. To samo dotyczy dryfowania na lewą i prawą burtę - jak to zrobić by np. klawisze A i D powodowały lekki dryf na lewo i prawo bez obracania się przodem całego pojazdu. Mam ustawione sterowanie które pasuje do samochodu, ustawianie direction += wartość przy skręcaniu obraca pojazdem ale jak się rozpędzi to już skręca po łuku. To moje początki z GM i pewnie trzeba sporego skryptu by coś takiego zrobić? Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
zelman Opublikowano 20 Listopada 2010 Udostępnij Opublikowano 20 Listopada 2010 Eee... z tego, co zrozumiałem, daj do eventu klawisza a GML hspeed += 1 a do d GML hspeed -= 1 Wtedy będzie przyspieszał w prawo lub w lewo... o to chodzi? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 20 Listopada 2010 Udostępnij Opublikowano 20 Listopada 2010 Ustaw zmienną obrotu, i operuj na niej. Dodawaj/odejmuj jej wartość sztrzałkami a potem po naciśnięciu na up ustawiasz direction= obrot i prędkość . Z dryfem w bok to wystarczy manipulować zmienną hspeed. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
zelman Opublikowano 20 Listopada 2010 Udostępnij Opublikowano 20 Listopada 2010 Nie... z obracaniem to zamiast tworzyć zmienną obrót to po prostu dodawaj lub odejmuj direction, to będzie się obracał po wciśnięciu A/D, a nie dopiero po wciśnięciu W Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pk100 Opublikowano 20 Listopada 2010 Autor Udostępnij Opublikowano 20 Listopada 2010 No właśnie problem jest w tym, że statek ma latać 360 stopni w każdym kierunku, to co podałeś zda egzamin jak leci tylko w jedną stronę. A jak zrobić by dryfował na boki przy sterowaniu 360 stopni... Powiedzmy skręcam w lewo na godz. 11 i tam lecę a dryfowanie będzie działać 90 stopni na boki w lewo o prawo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
zelman Opublikowano 20 Listopada 2010 Udostępnij Opublikowano 20 Listopada 2010 Eee... kurde, nie rozumiem, ale może step obiektu GML if (direction >=91 { direction = 90 } i odwrotnie GML if (direction <= 31 { direction = 30 } E: Ofc, pozmieniaj te liczby :P Ale to da ustalenie maksymalnego i minimalnego wychylenia na boki tego statku Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 20 Listopada 2010 Udostępnij Opublikowano 20 Listopada 2010 Chyba chodzi o sterowanie z asteroids, który jest dołączony do GMa. Sterowanie: GML (step) if ( keyboard_check( vk_left ) ) image_angle += 10; if ( keyboard_check( vk_right ) )image_angle -= 10; if ( keyboard_check( vk_up ) ) motion_add( image_angle, 0.5 ); if ( keyboard_check( vk_down ) ) motion_add( image_angle, -0.2 ); jak masz gdzieś image_angle = direction to wywal to Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pk100 Opublikowano 20 Listopada 2010 Autor Udostępnij Opublikowano 20 Listopada 2010 Dokładnie o to chodziło. A z dryfem 90 stopni na boki od kierunku w którym jest zwrócony da się coś zrobić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 20 Listopada 2010 Udostępnij Opublikowano 20 Listopada 2010 Nie rozumiem, może jakiś rysunek? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pk100 Opublikowano 20 Listopada 2010 Autor Udostępnij Opublikowano 20 Listopada 2010 Lecąc w dowolnym kierunku w zakresie 360 stopni - naciśnięcie klawiszy np. A i D powoduje przesuwanie się statku na lewo i prawo ale bokiem, dokładnie 90 stopni od kierunku w którym leci - pojazd się nie obraca, leci na przód, a A i D przesuwają go na boki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 20 Listopada 2010 Udostępnij Opublikowano 20 Listopada 2010 Ale skoro pojazd ma się nie obracać tylko spychać to jak chcesz nim skręcać? spychanie na boki bez obracania. GML (step) if ( keyboard_check( ord( 'A' ) ) ) { motion_add( image_angle - 90, 0.3 ); /*image_angle += 8;*/ } if ( keyboard_check( ord( 'D' ) ) ) { motion_add( image_angle + 90, 0.3 ); /*image_angle -= 8;*/ } if ( keyboard_check( ord( 'W' ) ) ) motion_add( image_angle, 0.5 ); if ( keyboard_check( ord( 'S' ) ) ) motion_add( image_angle, -0.2 ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pk100 Opublikowano 20 Listopada 2010 Autor Udostępnij Opublikowano 20 Listopada 2010 Wszystko jasne. Wielkie dzięki za pomoc, pozdrawiam :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pk100 Opublikowano 16 Grudnia 2010 Autor Udostępnij Opublikowano 16 Grudnia 2010 Wracam do tematu: Stosując powyższe wskazówki sterowanie działa tak jak chciałem ale trzymając klawisze statek ciągle przyspiesza. Jak zrobić ograniczenia by w przód leciał z prędkością maksymalną 8 a w tył i na boki 1 ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
zelman Opublikowano 16 Grudnia 2010 Udostępnij Opublikowano 16 Grudnia 2010 if cośtam > x cośtam = x Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pk100 Opublikowano 16 Grudnia 2010 Autor Udostępnij Opublikowano 16 Grudnia 2010 już doszedłem, działa :) 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ę