Skocz do zawartości

Znowu problem z originami :(


Vianom

Rekomendowane odpowiedzi

No więc tak, mam obiekt1(origin w środku) który jest prostokątem i w nim w evencie create jest tworzenie ludka. Ten ludek ma w end stepie taki kod :

x = obiekt1.x i y = obiekt1.y - 10

W pozycji startowej ludek jest tam gdzie być powinien (na przodzie prostokąta), ale dlatego że prostokąt ma

image_angle = direction

i zmienia swój kąt to ludek czasem znajduje się poza prostokątem.

 

Jest na to jakaś rada? Proszę o szybką odpowiedź. :sp_ike:

Odnośnik do komentarza
Udostępnij na innych stronach

Nie trzeba tego co mówicie. Wystarczy przy kolizji z takim objektem napisać

if (keyboard_check(vk_left))
direction -= rotate_speed; 
// zamiast rotate_speed wpisz o ile stopni obraca się samochód przy skręcaniu 
if (keyboard_check(vk_right))
direction += rotate_speed;

Odnośnik do komentarza
Udostępnij na innych stronach

Po pierwsze to nie jest samochód :P

Po drugie Ty chyba kompletnie nie zrozumiałeś problemu :blink: , nie chodzi o okręcanie się łodzi tylko o sprawdzenie czy można skręcić. Przypominam że obiekt może się kręcić 360 stopni, ale gdy obok jest naprzykład wyspa to się w nią "wkręca". Ot i cały problem <_<

Odnośnik do komentarza
Udostępnij na innych stronach

A ty nie zrozumiałeś tego co napisałem. Przy kolizji z jakimśtam solidem jeśli wciskamy np. strzałkę w lewo to obracamy się np. o 4 stopnie w przeciwny kierunek, dzięki temu wszystko się uzupełnia.

Left: direction += 4 // przy kolizji jest -= 4 więc łódź obróci się o 0 stopni

Right: direction -= 4 // przy kolizji jest += 4 więc łódź obróci się o 0 stopni

KPW

Odnośnik do komentarza
Udostępnij na innych stronach

Rany! PoMYŚL trochę... ;[ Skręcanie w inną stronę nastąpi wtedy gdy naciśniesz LEFTa lub RIGHTa. Gdy będziesz płynął normalnie to nic się nie stanie. Spróbuj tego w kolizji z solidem:

direction += -dirspeed

Ale wcześniej ustal "dirpeed"

W Lefcie

direction += 4;
dirspeed = 4;

W Rightcie

direction -= 4;
dirspeed = -4;

w Releasie Lefta

if !(keyboard_check(vk_right))
dirspeed = 0;

w Releasie Righta

if !(keyboard_check(vk_left))
dirspeed = 0;

Może nie działać...

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...