Skocz do zawartości

Trampolina paraboliczna


pankracy
 Udostępnij

Rekomendowane odpowiedzi

Cześć wszystkim.

 

Mam w grze trampoline która ma ustawiony kąt 45 stopni.W ten sposób uzyskuje do przodu odbicie po łuku.

Kod działa! ale chciałbym uzyskać taki efekt

 

Opis:

Od trampoliny gracz może się odbic tylko w chwili kiedy odtwarzana będzie animacja trampoliny.Jak animacja nie będzie odtwarzana to gracz nie będzie mógł się od niej odbić.Można by było trochę skok paraboliczny zwolić np ustawić odpowiednio grawitacje aby troche wolniej leciał gracz jak się odbije.

Czyli np co 5 sekund jest odtwarzana animacja i gracz wtedy może się odbić.

I druga sprawa dźwièk trampoliny powinien odtwarzać się w chwili wyswietlania animacji oraz na bliskim dystanie od gracza.

Sprawę z wyswietlaniem animacji można rozwiązac używając zapewne zdarzenia Alarm ale dalej nie mam pomysłu na resztę.

Bardzo dziękuję z góry wszystkim za pomoc.

Kod parabolicznej trampoliny wyglada tak:

Bardzo przepraszam za format ale odpisuje z telefonu.

 

Obj_trampolina

 

Create

 

image_speed = 0;

pwr = 152;

 

 

Step

 

if place_meeting(x,y,par_entity) {

with instance_place(x,y,par_entity) {

hspd=lengthdir_x(1,other.image_angle+45)*other.pwr;

vspd=lengthdir_y(1,other.image_angle+45)*other.pwr; audio_play_sound(snd_trampolina, 10, false); }

image_speed = 1; }

 

Animation end

 

image_index = 0;

image_speed = 0;

Odnośnik do komentarza
Udostępnij na innych stronach

W dniu 11.06.2021 o 06:22, pankracy napisał:

Od trampoliny gracz może się odbic tylko w chwili kiedy odtwarzana będzie animacja trampoliny.Jak animacja nie będzie odtwarzana to gracz nie będzie mógł się od niej odbić.Można by było trochę skok paraboliczny zwolić np ustawić odpowiednio grawitacje aby troche wolniej leciał gracz jak się odbije.

Czyli np co 5 sekund jest odtwarzana animacja i gracz wtedy może się odbić.

Zachowuj stan trampoliny w zmiennej, np. jakąś flagę i steruj nią podczas animacji w zdarzeniach Animation Start oraz Animation End. W kodzie odbicia przed place_meeting sprawdzaj, czy flaga jest True i tyle.

 

W dniu 11.06.2021 o 06:22, pankracy napisał:

I druga sprawa dźwièk trampoliny powinien odtwarzać się w chwili wyswietlania animacji oraz na bliskim dystanie od gracza.

Sprawę z wyswietlaniem animacji można rozwiązac używając zapewne zdarzenia Alarm ale dalej nie mam pomysłu na resztę.

Możesz odpalić dźwięk w zdarzeniu Animation Start.

 

  • Lubię (+1) 1
Odnośnik do komentarza
Udostępnij na innych stronach

3 godziny temu, Konrad-GM napisał:

Zachowuj stan trampoliny w zmiennej, np. jakąś flagę i steruj nią podczas animacji w zdarzeniach Animation Start oraz Animation End. W kodzie odbicia przed place_meeting sprawdzaj, czy flaga jest True i tyle.

 

Możesz odpalić dźwięk w zdarzeniu Animation Start.

 

Czyli przenieść cały kod ze zdarzenia Step do Animation Start a w zdarzeniu create dodać zmienną np start = false następnie tą zmienną start = true ustawić w zdarzeniu Animation Start.

Animation End ustawić zmienną start na false.

 

Probuje sobie to wyobrazić

 

 

A jak np troche spowolnić odbicie gracza? Powinienem zmniejszyć grawitacje? 

W obiekcie dziedziczacym par_entity mam tam zmienne dla bohatera i obiektóww grze np grawitacje mam ustawioną na wartość 1.

Odnośnik do komentarza
Udostępnij na innych stronach

12 minut temu, pankracy napisał:

Czyli przenieść cały kod ze zdarzenia Step do Animation Start a w zdarzeniu create dodać zmienną np start = false następnie tą zmienną start = true ustawić w zdarzeniu Animation Start. Animation End ustawić zmienną start na false.

Kod w Step obj_trampolina zostaw, dodaj flagę `start` w Create trampoliny, ustaw ją na `true` w zdarzeniu Animation Start a `false` po zakończeniu animacji (w zdarzeniu Animation End). Dodatkowo kod w Step wzbogać o sprawdzanie flagi start np. dodając na początku `if (start == false) return;`.

 

7 minut temu, pankracy napisał:

A jak np troche spowolnić odbicie gracza? Powinienem zmniejszyć grawitacje?

Jeżeli ma wolniej opadać, to tak, pozostaje modyfikacja grawitacji. Możesz też np. zresetować grawitację (z np. 0.5 do 1.0) po dotknięciu podłoża.

  • Lubię (+1) 1
Odnośnik do komentarza
Udostępnij na innych stronach

2 godziny temu, Konrad-GM napisał:

Kod w Step obj_trampolina zostaw, dodaj flagę `start` w Create trampoliny, ustaw ją na `true` w zdarzeniu Animation Start a `false` po zakończeniu animacji (w zdarzeniu Animation End). Dodatkowo kod w Step wzbogać o sprawdzanie flagi start np. dodając na początku `if (start == false) return;`.

 

Jeżeli ma wolniej opadać, to tak, pozostaje modyfikacja grawitacji. Możesz też np. zresetować grawitację (z np. 0.5 do 1.0) po dotknięciu podłoża.

 

 

Obj_trampolina

 

Create

 

image_speed = 0;

start = true;

pwr = 152;

 

 

Step

 

if (start == false) return 0;// jaka powinna być tu wartość?

if place_meeting(x,y,par_entity) {

with instance_place(x,y,par_entity) {

hspd=lengthdir_x(1,other.image_angle+45)*other.pwr;

vspd=lengthdir_y(1,other.image_angle+45)*other.pwr; audio_play_sound(snd_trampolina, 10, false); }

image_speed = 1; }

 

 

Animation start

 

start = true;

 

 

Animation end

 

start = false;

image_index = 0;

image_speed = 0;

 

Pisze z telefonu.

Teraz grawitacje musiałbym ustawić w zdarzeniu step? I dodać warunek przy place_meeting że jak odbije się gracz to grawitacja zwolni na 0.5 a jak dotknie podłoża zresetuje się do wartości początkowej 1.

Nie używałem funkcji return tam powinna być wartość 0??

Odnośnik do komentarza
Udostępnij na innych stronach

6 minut temu, pankracy napisał:

Dobra teraz widzę,że nie mam eventu Animation Start.jest tylko Animation End,update,event

Przejrzałem dokumentację i faktycznie nie ma tego zdarzenia, to musisz w takim razie ustawiać flagę w miejscu, gdzie uruchamiasz animację.
 

Godzinę temu, pankracy napisał:

Teraz grawitacje musiałbym ustawić w zdarzeniu step? I dodać warunek przy place_meeting że jak odbije się gracz to grawitacja zwolni na 0.5 a jak dotknie podłoża zresetuje się do wartości początkowej 1.

To już zależy jak będzie działać w tym wypadku, w if z place_meeting możesz ustawiać grawitację i resetować ją w kodzie Step par_entity jak "stoi" na ziemii.
 

1 godzinę temu, pankracy napisał:

Nie używałem funkcji return tam powinna być wartość 0??

return nie musi przyjmować wartości, w tym wypadku przerwie całe zdarzenie Step. Jeżeli masz więcej bloków ze skryptami, to możesz użyć break, to powinno przerwać pojedynczy blok.

  • Lubię (+1) 1
Odnośnik do komentarza
Udostępnij na innych stronach

58 minut temu, Konrad-GM napisał:

Przejrzałem dokumentację i faktycznie nie ma tego zdarzenia, to musisz w takim razie ustawiać flagę w miejscu, gdzie uruchamiasz animację.
 

To już zależy jak będzie działać w tym wypadku, w if z place_meeting możesz ustawiać grawitację i resetować ją w kodzie Step par_entity jak "stoi" na ziemii.
 

return nie musi przyjmować wartości, w tym wypadku przerwie całe zdarzenie Step. Jeżeli masz więcej bloków ze skryptami, to możesz użyć break, to powinno przerwać pojedynczy blok.

 

Jak nie dam żadnej wartości w return to wyrzuci błąd.

Stąd moje pytanie odnośnie dodania wartości.

Ok mogę dodać na koniec warunku break;

Chociaż nie wiem czy to nie powinno być używane ze switch;

 

Teraz tak:

 

Mój kod jest tak skonstruowany że animacja uruchamia się dopiero z zetknięciem gracza z trampoliną a kończy się w zdarzeniu Animation End.

 

Kurcze nie mam pomysłu na to.

Odnośnik do komentarza
Udostępnij na innych stronach

4 godziny temu, Konrad-GM napisał:

Przejrzałem dokumentację i faktycznie nie ma tego zdarzenia, to musisz w takim razie ustawiać flagę w miejscu, gdzie uruchamiasz animację.
 

To już zależy jak będzie działać w tym wypadku, w if z place_meeting możesz ustawiać grawitację i resetować ją w kodzie Step par_entity jak "stoi" na ziemii.
 

return nie musi przyjmować wartości, w tym wypadku przerwie całe zdarzenie Step. Jeżeli masz więcej bloków ze skryptami, to możesz użyć break, to powinno przerwać pojedynczy blok.

A dałbyś radę pomóc mi to w całość złożyć?

 

Bo chodzi o to przypomne że gracz powinien mieć możliwość odbicia się od trampoliny dopiero jak animacja trampoliny się pokaże.

I ta animacja powinna np co 5 sekund się pokazywać potem stan spoczynku i wtedy nie może się gracz odbić i po 5 sekundach animacja się wyswietli to wtedy może się odbić od trampoliny.

Grawitacja wtedy powinna zwolnić o połowę a jak wyladuje to wrócić do pierwotnego stanu.

Dźwięk trampoliny powinien być odtwarzany w chwili wyświetlania animacji.

 

Odnośnik do komentarza
Udostępnij na innych stronach

19 godzin temu, pankracy napisał:

Bo chodzi o to przypomne że gracz powinien mieć możliwość odbicia się od trampoliny dopiero jak animacja trampoliny się pokaże.

I ta animacja powinna np co 5 sekund się pokazywać potem stan spoczynku i wtedy nie może się gracz odbić i po 5 sekundach animacja się wyswietli to wtedy może się odbić od trampoliny.

A to masz na myśli cooldown? Że gracz może ponownie użyć trampoliny PO 5 sekundach jej użycia, czy jedynie podczas trwania animacji, ale która jest odtwarzana CO 5 sekund?

 

19 godzin temu, pankracy napisał:

Grawitacja wtedy powinna zwolnić o połowę a jak wyladuje to wrócić do pierwotnego stanu

No grawitacją steruj już w Step par_entity, w kodzie gdzie sprawdzasz czy obiekt stoi na ziemi ustawiaj pierwotną wartość grawitacji `gravity = 1.0`. A ustawienie połowy grawitacji ustawiaj w kodzie, gdzie sterujesz trampoliną i ustawiasz graczowi prędkość odbicia, czyli w Step obj_trampolina, w bloku if place_meeting.
 

19 godzin temu, pankracy napisał:

Dźwięk trampoliny powinien być odtwarzany w chwili wyświetlania animacji.

Jak masz if place_meeting w obj_trampolina, to tam przy okazji możesz też odtworzyć dźwięk.

  • Lubię (+1) 1
Odnośnik do komentarza
Udostępnij na innych stronach

18 minut temu, Konrad-GM napisał:

A to masz na myśli cooldown? Że gracz może ponownie użyć trampoliny PO 5 sekundach jej użycia, czy jedynie podczas trwania animacji, ale która jest odtwarzana CO 5 sekund?

 

No grawitacją steruj już w Step par_entity, w kodzie gdzie sprawdzasz czy obiekt stoi na ziemi ustawiaj pierwotną wartość grawitacji `gravity = 1.0`. A ustawienie połowy grawitacji ustawiaj w kodzie, gdzie sterujesz trampoliną i ustawiasz graczowi prędkość odbicia, czyli w Step obj_trampolina, w bloku if place_meeting.
 

Jak masz if place_meeting w obj_trampolina, to tam przy okazji możesz też odtworzyć dźwięk.

 

Dokładnie tak mam na myśli cooldown.

Co do grawitacji fakt w obiekcie dziedziczacym par_entity tam musze grawitacje zostawić na wartości g = 1; bo inaczej zmieni mi się w całej grze.Natomiast mam ją jak napisałeś sterować w trampolinie w zdarzeniu step

 

If place_meeting(x,y,par_entity) {

g = 0.5;

with instance_place(x,y,par_entity) {

hspd=lengthdir_x(1,other.image_angle+45)*other.pwr;

vspd=lengthdir_y(1,other.image_angle+45)*other.pwr; audio_play_sound(snd_trampolina, 10, false); }

image_speed = 1; }

 

Tylko teraz dobrze ustawić w bloku kodu grawitacje z powrotem na wartość 1 jak dotknie podłoża.

Odnośnik do komentarza
Udostępnij na innych stronach

Godzinę temu, pankracy napisał:

Dokładnie tak mam na myśli cooldown

W takim razie musisz dodać Alarm w obiekcie obj_trampolina, np. dodaj zdarzenie Alarm[0] i w nim wstaw blok kodu resetujący flagę `start = false`. Generalnie polega to na tym, że teraz Animation End nas nie interesuje, tylko czas, więc w Animation End możesz zatrzymać animację `image_speed = 0` ale nie zmieniaj flagi `start` - to zrobi Alarm[0] po 5 sekundach.

 

Godzinę temu, pankracy napisał:

Co do grawitacji fakt w obiekcie dziedziczacym par_entity tam musze grawitacje zostawić na wartości g = 1; bo inaczej zmieni mi się w całej grze. Natomiast mam ją jak napisałeś sterować w trampolinie w zdarzeniu step

No ok, ale teraz ustawiasz zmienną `g = 0.5` w instancji obj_trampolina, zamiast w par_entity, dlatego to nie zadziała. Ustaw grawitację w instancji par_entity, przecież od tego masz blok `with instance_place(x,y,par_entity)` który tak jak hspd i vspd ustawi również zmienną `g` tylko wyłącznie w instancji par_entity dotykającej trampoliny. Natomiast resetować grawitację musisz w kodzie par_entity, bo obj_trampolina nie ma pojęcia o stanie obiektu par_entity po X czasie, jak np. czy po dwóch sekundach par_entity stoi na ziemi, czy jeszcze fruwa.

Dodatkowo w bloku `if place_meeting(x,y,par_entity)` (ale nie w `with instance_place(x,y,par_entity)`) ustawiaj Alarm, jeżeli cooldown ma trwać 5 sekund - `alarm[0] = room_speed * 5`. Mnożymy room_speed (1 sekunda) z wartością 5, to otrzymamy 5 sekund.

  • Lubię (+1) 1
Odnośnik do komentarza
Udostępnij na innych stronach

16 godzin temu, Konrad-GM napisał:

W takim razie musisz dodać Alarm w obiekcie obj_trampolina, np. dodaj zdarzenie Alarm[0] i w nim wstaw blok kodu resetujący flagę `start = false`. Generalnie polega to na tym, że teraz Animation End nas nie interesuje, tylko czas, więc w Animation End możesz zatrzymać animację `image_speed = 0` ale nie zmieniaj flagi `start` - to zrobi Alarm[0] po 5 sekundach.

 

No ok, ale teraz ustawiasz zmienną `g = 0.5` w instancji obj_trampolina, zamiast w par_entity, dlatego to nie zadziała. Ustaw grawitację w instancji par_entity, przecież od tego masz blok `with instance_place(x,y,par_entity)` który tak jak hspd i vspd ustawi również zmienną `g` tylko wyłącznie w instancji par_entity dotykającej trampoliny. Natomiast resetować grawitację musisz w kodzie par_entity, bo obj_trampolina nie ma pojęcia o stanie obiektu par_entity po X czasie, jak np. czy po dwóch sekundach par_entity stoi na ziemi, czy jeszcze fruwa.

Dodatkowo w bloku `if place_meeting(x,y,par_entity)` (ale nie w `with instance_place(x,y,par_entity)`) ustawiaj Alarm, jeżeli cooldown ma trwać 5 sekund - `alarm[0] = room_speed * 5`. Mnożymy room_speed (1 sekunda) z wartością 5, to otrzymamy 5 sekund.

 

 

Obj_trampolina

 

Create


 

pwr = 152;
image_speed = 2;//bo chcemy żeby animacja była odtwarzana

 

 

Alarm[0]

 

start = false

 

 

Tyle zrozumiałem;-) powyżej jest dobrze?

teraz tak ustawienie grawitacji muszę

 

Step

 

if place_meeting(x,y,par_entity) {
alarm[0] = room_speed * 5

with instance_place(x,y,par_entity) {

hspd=lengthdir_x(1,other.image_angle+45)*other.pwr;

vspd=lengthdir_y(1,other.image_angle+45)*other.pwr; audio_play_sound(snd_trampolina, 10, false); }

image_speed = 1; }

 

 

 

 

 

Animation end


 

image_index = 0;
image_speed = 0;

 

 

I teraz grawitacja.

w par_entity mam ją ustawioną na 1 więc tu mam ją ustawić za przełącznikiem with instance_place(x,y,par_entity)? bo jak wspomniałem jak grawitacje zmienię na 0.5 w samej instancji par_entity to mi się zmieni w całej grze a tego nie chce :-)

No i pozostaje kwestia zresetowania grawitacji na wartość 1 jak już wyląduje gracz dotknie ziemi.

 

Odnośnik do komentarza
Udostępnij na innych stronach

52 minuty temu, pankracy napisał:

w par_entity mam ją ustawioną na 1 więc tu mam ją ustawić za przełącznikiem with instance_place(x,y,par_entity)? bo jak wspomniałem jak grawitacje zmienię na 0.5 w samej instancji par_entity to mi się zmieni w całej grze a tego nie chce 🙂

A to zmienna `g` jest zmienną globalną?

  • Lubię (+1) 1
Odnośnik do komentarza
Udostępnij na innych stronach

45 minut temu, Konrad-GM napisał:

A to zmienna `g` jest zmienną globalną?

 

Konradzie zmienną globalną nie jest,ale z obiektu dziedziczącego par_entity korzysta praktycznie każdy obiekt bo dziedziczą z niego.

Dlatego jak tam zmienię wartość

g=1; na g=0.5; to gracz i obiekty wrogowie będą zachowywać się jakby wykonywali spacer na księżycu 😀

Odnośnik do komentarza
Udostępnij na innych stronach

4 minuty temu, pankracy napisał:

z obiektu dziedziczącego par_entity korzysta praktycznie każdy obiekt bo dziedziczą z niego

Ale nie dziedziczą tych samych stanów, każda instancja tworzy własną wersję zmiennej `g` (jedynie na podstawie obiektu par_entity).

  • Lubię (+1) 1
Odnośnik do komentarza
Udostępnij na innych stronach

6 minut temu, Konrad-GM napisał:

Ale nie dziedziczą tych samych stanów, każda instancja tworzy własną wersję zmiennej `g` (jedynie na podstawie obiektu par_entity).

 

Hmmm na to wygląda,ale jeśli ja zmienie w par_entity w zdarzeniu create wartość grawitacji

g=1; na g=0.5; to będę jak Amstrong na Księżycu Konradzie.

 

Może inaczej co musiałbym teraz zrobić aby nie popsuć grawitacji?

a jednocześnie mógł skorzystać z wolniejszej grawitacji przy tej trampolinie co wyżej a jak wyląduje powinno się zresetować do grawitacji jaką mam obecnie.

Odnośnik do komentarza
Udostępnij na innych stronach

19 minut temu, pankracy napisał:

Hmmm na to wygląda,ale jeśli ja zmienie w par_entity w zdarzeniu create wartość grawitacji

g=1; na g=0.5; to będę jak Amstrong na Księżycu Konradzie.

Dlatego nie ustawiaj tej wartości w create :)

Wiesz w ogóle do czego służy blok with i dlaczego właśnie tam ustawiasz hspd i vspd instancji par_entity? Czy nagle wszystkie obiekty na ekranie skaczą wraz z graczem?

Odnośnik do komentarza
Udostępnij na innych stronach

52 minuty temu, Konrad-GM napisał:

Dlatego nie ustawiaj tej wartości w create :)

Wiesz w ogóle do czego służy blok with i dlaczego właśnie tam ustawiasz hspd i vspd instancji par_entity? Czy nagle wszystkie obiekty na ekranie skaczą wraz z graczem?

Oczywiście, że wiem 

With tyczy się konkretnej instancji do ktorej chcemy się odwołać bedąc w innej:-)

 

Chyba mówimy o dwóch róznych rzeczach:-)

Poprzedzajac with plus instancja do której chcemy się odwołać w innej instancji ma to wtedy sens zmiana wartości jakiejś zmiennej bo nie zmienimy tej wartości dla wszystkich obiektów tylko dla tej jednej do której się odwołaliśmy.

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

20 minut temu, pankracy napisał:

With tyczy się konkretnej instancji do ktorej chcemy się odwołać bedąc w innej:-)

20 minut temu, pankracy napisał:

ma to wtedy sens zmiana wartości jakiejś zmiennej bo nie zmienimy tej wartości dla wszystkich obiektów tylko dla tej jednej do której się odwołaliśmy

1 godzinę temu, pankracy napisał:

Konradzie zmienną globalną nie jest,ale z obiektu dziedziczącego par_entity korzysta praktycznie każdy obiekt bo dziedziczą z niego.

Dlatego jak tam zmienię wartość

g=1; na g=0.5; to gracz i obiekty wrogowie będą zachowywać się jakby wykonywali spacer na księżycu 😀

 

:)

Odnośnik do komentarza
Udostępnij na innych stronach

🙂

 

6 godzin temu, Konrad-GM napisał:

 

:)

 

Słuszne jest zmiana grawitacji po bloku with par_entity prawda? Bo wtedy odwołamy się bezpośrednio do tej instancji

 

if place_meeting(x,y,par_entity) {
alarm[0] = room_speed * 5

with instance_place(x,y,par_entity) {
g=0.5;
hspd=lengthdir_x(1,other.image_angle+45)*other.pwr;

vspd=lengthdir_y(1,other.image_angle+45)*other.pwr; audio_play_sound(snd_trampolina, 10, false); }

image_speed = 1; }

Teraz pytanie gdzie powinno się resetować grawitacje do wartości 1

Odnośnik do komentarza
Udostępnij na innych stronach

1 godzinę temu, pankracy napisał:

Słuszne jest zmiana grawitacji po bloku with par_entity prawda? Bo wtedy odwołamy się bezpośrednio do tej instancji

Tak, jest to jak najbardziej poprawne.
 

1 godzinę temu, pankracy napisał:

Teraz pytanie gdzie powinno się resetować grawitacje do wartości 1

obj_trampolina zmienia grawitację tylko wyłącznie kiedy dotknie par_entity, imo najlepiej byłoby przywrócić wartość w Step par_entity kiedy opadnie już na ziemię.

 

  • Lubię (+1) 1
Odnośnik do komentarza
Udostępnij na innych stronach

3 godziny temu, Konrad-GM napisał:

Tak, jest to jak najbardziej poprawne.
 

obj_trampolina zmienia grawitację tylko wyłącznie kiedy dotknie par_entity, imo najlepiej byłoby przywrócić wartość w Step par_entity kiedy opadnie już na ziemię.

 

 

No właśnie...a jak oblicze moment kiedy gracz znajdzie się na ziemi?

a może dodać obiekt który jest solidem? mam obj_wall on jest solidem

dodać w zdarzeniu step w trampolinie warunek,że jak dotknie obj_wall to grawitacja będzie wynosiła wartość 1?

 

kod nie działa. Nadal animacja trampoliny nie jest odtwarzana co 5 sekund i w trakcie trwania animacji gracz może odbić się od trampoliny.

może jeszcze flaga start musi być gdzieś zdefiniowana a nie tylko w alarmie0?

 

obj_trampolina

 

create

 

pwr = 152;
image_speed = 2;//bo chcemy żeby animacja była odtwarzana

 

Alarm[0]

 

start = false

 

step

 

if place_meeting(x,y,par_entity) {
alarm[0] = room_speed * 5

with instance_place(x,y,par_entity) {
g=0.5; //ustawiamy podczas skoku grawitacje wolniej aby gracz się przemieszczał
hspd=lengthdir_x(1,other.image_angle+45)*other.pwr;

vspd=lengthdir_y(1,other.image_angle+45)*other.pwr; audio_play_sound(snd_trampolina, 10, false); }

image_speed = 1; }

 

Animation End

 

image_index = 0;
image_speed = 0;

 

Odnośnik do komentarza
Udostępnij na innych stronach

11 minut temu, pankracy napisał:

kod nie działa. Nadal animacja trampoliny nie jest odtwarzana co 5 sekund i w trakcie trwania animacji gracz może odbić się od trampoliny.

może jeszcze flaga start musi być gdzieś zdefiniowana a nie tylko w alarmie0?

W kodzie Step nie masz ustawianej flagi `start = true` więc technicznie flaga nigdy się nie zmienia. Wstaw `start = true` zaraz pod `alarm[0] = room_speed * 5`. Dodatkowo w Step nie sprawdzasz czy `start == false` żeby uruchomić blok odpowiedzialny za skok. Np. `if start == false && place_meeting(x,y,par_entity) {`.

  • Lubię (+1) 1
Odnośnik do komentarza
Udostępnij na innych stronach

31 minut temu, Konrad-GM napisał:

W kodzie Step nie masz ustawianej flagi `start = true` więc technicznie flaga nigdy się nie zmienia. Wstaw `start = true` zaraz pod `alarm[0] = room_speed * 5`. Dodatkowo w Step nie sprawdzasz czy `start == false` żeby uruchomić blok odpowiedzialny za skok. Np. `if start == false && place_meeting(x,y,par_entity) {`.

 

tak nie zadziała,bo nie będę miał zdeklarowanej zmiennej w create trampoliny i wywali mi komunikat o braku zmiennej start.

Chyba,że użyć var w step zdarzenia i dodać zmienną start?

 


step

 

if obj_trampolina == false && place_meeting(x,y,par_entity) {
alarm[0] = room_speed * 5
start = true;
 with instance_place(x,y,par_entity)
 {
  g = 0.5;

  hspd = lengthdir_x(1,other.image_angle+25)*other.pwr;
  vspd = lengthdir_y(1,other.image_angle+25)*other.pwr;

 
 }
 
 image_speed = 1;
}

 

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ę
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

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