Skocz do zawartości

Kropla wody / schodzenie z górki


arek80

Rekomendowane odpowiedzi

Witam.

 

Przeglądam forum mniej więcej od 3 tygodni tyle tez posiadam

game maker. Przyszedł czas aby aby się zarejestrować.

Wcześniej był c++ oraz biblioteka allegro.

Jestem pod dużym wrażeniem programu. Szczególnie szybkości tworzenia :rolleyes:

 

 

Mam problem z dopracowaniem dwóch zdarzeń/skryptów.

 

1. Kropla wody

 

Moja kropla wody to obiekt, który umieszczam gdzieś na mapie.

Chce, aby kropla/obiekt był ciągle tworzony od nowa w tym samym miejscu.

Wszystko jest ok poza w tym samym miejscu .

Mam problem z parametrami x,y co tam wpisać. Można jakieś wartości 200, 30

ale nie o to chodzi żeby mieć 10 obiektów kropli w zasobach projektu tylko 1

 

Załącznik

klik

 

2. Ruch z górki plus zmiana sprajta.

 

Są dwa problemy

- skacze z górki a powinien schodzić (wiem jest przykład ale mam problem z integracją)

- zmiana sprajta w zależności czy jest pochyłość czy plaska powierzchnia

Zauważcie, że sprajt się zmienia dopiero jak skocze na daną powierzchnie, a nie jak jest kolizja.

 

Załącznik

klik

 

Ps. Rozglądam się za porządnym przesuwaniem kamieni z grawitacją

(to samo co w Boulder Dash), tylko mi się przylepiają do krawędzi obiektów.

 

ps2. do administracji ciężko się z wami skontaktować osobie bez konta/ bez aktywacji.

Pięciokrotnie zakładałem konto które znikało chyba po 24h bo nie miało aktywacji administratora.

Odnośnik do komentarza
Udostępnij na innych stronach

Chodzi o to aby kropla tworzyła sie w tym samym miejscu np. kapanie z pęknietej rury.

Tam gdzie umieszcze na mapie/room tam bedzie się tworzyc kropla/obiekt

Jak pisałem mogę stworzyc w zasobach kilkanaście obiektów kropli wody no ale nie o to chodzi.

 

Bardziej mnie martwi to schodzienie z górki i zmiana sprajtów.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Wywal zmiany sprita w Twoich klockach przy kolizji z górką i przy ciskaniu klawisza down. To wszytsko masz w tym kodzie:

GML
//grawitacja

if place_free(x+0,y+1)

{

gravity_direction=270

gravity=0.6

}

else // Gdy jesteśmy n ziemi

{

if(place_meeting(x,y+1,wall)) // i dotykamy ziemi plaskiej

{

sprite_index = sprite0; // zmien sprita na plaskiego

} else if ((place_meeting(x,y+1,g_A)) || (place_meeting(x,y+1,g_B))) // a jezeli dotykamy skosu jednego LUB drugiego

{

sprite_index = spr; // zmien sprita na skos

}

gravity_direction=270

gravity=0

 

}

 

 

if(keyboard_check(vk_down))

{

sprite_index = down;

}

 

 

//max szybkosc spadania

if (vspeed>10)

{

vspeed=10

}

Odnośnik do komentarza
Udostępnij na innych stronach

Wielkie dzieki.

Nie wiedziałem co wstawić za

GML
sprite_index = spr;

więc troszeczkę przerobiłem kod :)

 

GML
//grawitacja

if place_free(x+0,y+1)

{

gravity_direction=270

gravity=0.6

}

else // Gdy jesteśmy n ziemi

{

if(place_meeting(x,y+1,wall)) // i dotykamy ziemi plaskiej

{

sprite_index = sprite0; // zmien sprita na plaskiego

}

else if (place_meeting(x,y+1,g_A))

{

sprite_index = lewo; // pochyłość w lewo

}

else if (place_meeting(x,y+1,g_B))

{

sprite_index = prawo; // pochyłość w prawo

}

gravity_direction=270

gravity=0

}

 

if(keyboard_check(vk_down))

{

sprite_index = down;

}

 

//max szybkosc spadania

if (vspeed>10)

{

vspeed=10

}

Odnośnik do komentarza
Udostępnij na innych stronach

No wiadomo że Twój sprit schodzenia. Jezeli na prawo i lewo będą inne to zrób tak jak masz, jezeli będzie tylko jeden taki sam bez względu na to po jakim skosie schodzisz to możesz mój kod zostawić a w spr dać swoja nazwę tak jak mówiłem.

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ę...