Skocz do zawartości

Problem z timeline


Rekomendowane odpowiedzi

Mam problem. Przerabiam klocki na kod (z niemałą pomocą Action Decodera) i problem mam z timeline'ami. Przy kolizji z wybuchem obiekt ma kod {timeline_index=death1} Po ponownej kolizji obiektu z wybuchem timeline się nie włącza. Podejrzewam, że przy klocku timeline wyłącza się po zakończeniu swego działania, a przy kodzie nie. Czy możnaby na przykład jako końcową funkcję w timelinie dać coś w stylu {timeline_index=none}, czy coś? I jak w ogóle to naprawić???

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

[/code]po pierwsze to chyba tak:

timeline_index=death1
timeline_position=0

 

a w helpie do Game makera 5.3 znalazlem to

timeline_index Index of the time line associated with the instance. You can set this to a particular time line to use that one. Set it to -1 to stop using a time line for the instance.

 

timeline_position Current position within the time line. You can change this to skip certain parts or to repeat parts.

 

timeline_speed Normally, in each step the position in the time line is increased with 1. You can change this amount by setting this variable to a different value. You can use reals, e.g. 0.5. If the value is larger than one, several moments can happen within the same time step. They will all be performed in the correct order, so no actions will be skipped.

 

spróbuj też wywałać timelina z tymi trzema procedurami.

 

Możliwe, że tameline jest źle napisany, dla testu napisz naprzykład w pierwszym stepie tameline taki kod:

show_message('dziala');

jak ci się wyświetli, to znaczy, że źle masz zrobioną resztę funkcji (może naprzyklad zapomniałeś o with(objekt) <wyrażenie> (działanie) )

Odnośnik do komentarza
Udostępnij na innych stronach

Problem rozwiązany. Wielkie dzięki. Mam teraz następne pytanko. Zamieszczę je tu, bo nie ma sensu zakładać nowego tematu. Coś mi się psuje z kodem i, gdy mam kod

{

if place_free(x+0,y-32)

if not position_meeting(x+0,y-32,bomba_mur1)

if not position_meeting(x+0,y-32,bomba_mur2)

{action_move("000000010",obj_speed);}

}

to postać, nawet gdy jest tam owa bomba_mur, porusza się do góry. Już kompletnie nie wiem co jest!

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
{

if place_free(x+0,y-32)

if not position_meeting(x+0,y-32,bomba_mur1)

if not position_meeting(x+0,y-32,bomba_mur2)

{action_move("000000010",obj_speed);}

}

 

no to ja bym to zrobił może tak:

if place_free(x,y-32)
{
 if not position_meeting(x,y-32,bomba_mur1)
 {
   if not position_meeting(x,y-32,bomba_mur2)
   then with(object_speed) //(dla obiektu speed)
   {direction=direction; speed=0;}
 }
}

Odnośnik do komentarza
Udostępnij na innych stronach

Cosik nie działa. Po pierwsze nie chodziło mi o zakodowanie action_move dla innego objektu. obj_speed to szybkość, z którą objekt się porusza (ustalona wcześniej). Gdy używam tego kodu, to objekt w ogóle nie chce iść do góry. :/

Odnośnik do komentarza
Udostępnij na innych stronach

SLY, "000000010" to góra.

Ale dalej nic nie działa

Teraz kod wygląda tak:

 

if place_snapped(32,32)=true
{sprite_index=p1_up;
{if place_free(x,y-32)
{if not position_meeting(x,y-32,bomba_mur1)
{if not position_meeting(x,y-32,bomba_mur2)
then {action_move("000000010",obj_speed)}
}
}
}
}

 

Co nie działa?! Czy ktoś mógłby sprawdzić. Zamiast obj_speed wstawcie 2, a przed sprite_index=p1_up można dać "//" Sprawdźcie to.

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