MZG Opublikowano 30 Maja 2009 Udostępnij Opublikowano 30 Maja 2009 Mam następujące pytanie: Jest obj_hero i obj_boss. obj_boss podąża za obj_hero. Jak dojdzie do kolizji następuje reset rooma. Chodzi mi o to żeby obj_boss przy kolizji z obj_sciana został "sparaliżowany". Wtedy przy kolizji z obj_hero-->obj_boss doszło by do wygranej Jak tak zrobić (bo wiem że w GML można zrobić wszystko)? Z góry dzięki. PS. Jak ktoś może, proszę o przykład PS2. Jak jeszcze zrobić by tego boss-a trzeba było udzerzyć 3 razy? (W sumie to coś takiego: obj_boss---kolizja obj_sciana----kolizja obj_hero ----czekaj 1 sek----ożywianie-----*3-----wygrana) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 30 Maja 2009 Udostępnij Opublikowano 30 Maja 2009 W bossie GML (Create) hp = 3; // Ilość "żyć" bossa sciana = false; // Nie jest sparaliżowany canhit = true; // Może uderzyć gracza</span></span></span> GML (Alarm0) sciana = false; GML (Alarm1) canhit = true; GML (Kolizjazesciana) sciana = true; // Jest sparaliżowany alarm[0] = room_speed * 5; // Po 5 sekundach inicjuje się akcja z alarmu 0, czyli boss po tym czasie dalej może atakować</span></span> GML (Kolizjazbohaterem) if( sciana ) // Jeżeli jest sparaliżowany { hp -= 1; // Odejmujemy mu jedno życie sciana = false; // Nie jest już sparaliżowany canhit = false; // Nie może uderzać gracza alarm[1] = room_speed * 3; // Dopiero po 3 sekundach będzie mógł uderzyć gracza } else if( canhit == true ) // Jeżeli nie jest sparaliżowany i może uderzyć gracza room_restart(); // Restart rooma if( hp <= 0 ) // Jeżeli ma 0 lub mniej życia { show_message( 'Wygrales!' ); // Wygrałeś // Możesz sobie też wykonać inne akcje :P } Proszę bardzo, wszystko skomentowane. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 30 Maja 2009 Autor Udostępnij Opublikowano 30 Maja 2009 W bossie GML (Create)hp = 3; // Ilość "żyć" bossa sciana = false; // Nie jest sparaliżowany canhit = true; // Może uderzyć gracza GML (Alarm0)sciana = false; GML (Alarm1)canhit = true; GML (Kolizjazesciana)sciana = true; // Jest sparaliżowany alarm[0] = room_speed * 5; // Po 5 sekundach inicjuje się akcja z alarmu 0, czyli boss po tym czasie dalej może atakować GML (Kolizjazbohaterem)if( sciana ) // Jeżeli jest sparaliżowany { hp -= 1; // Odejmujemy mu jedno życie sciana = false; // Nie jest już sparaliżowany canhit = false; // Nie może uderzać gracza alarm[1] = room_speed * 3; // Dopiero po 3 sekundach będzie mógł uderzyć gracza } else if( canhit == true ) // Jeżeli nie jest sparaliżowany i może uderzyć gracza room_restart(); // Restart rooma if( hp <= 0 ) // Jeżeli ma 0 lub mniej życia { show_message( 'Wygrales!' ); // Wygrałeś // Możesz sobie też wykonać inne akcje :P } Proszę bardzo, wszystko skomentowane. Problem :( Ma za mną podożać, kiedy pisze to w step to... Już nic, ale: Działa dobrze, tylko wygrana odrazu po pierwszym uderzeniu a nie po trzech. To już nie obowiązkowe, ale jak ktoś by mógł... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 30 Maja 2009 Udostępnij Opublikowano 30 Maja 2009 Widocznie cały czas koliduje ze ścianą. Po kolizji odbij bossa od ściany i będzie dobrze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 30 Maja 2009 Autor Udostępnij Opublikowano 30 Maja 2009 Nic nie daje, bo ściana jest na uboczu... ale i tak jest lepiej. Thx Nobody, już nie będe zawracał głowy. I tak dużo zrobiłeś! Temat do zamknęcia! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Saus Opublikowano 30 Maja 2009 Udostępnij Opublikowano 30 Maja 2009 GML sciana = true; // Jest sparaliżowany alarm[0] = room_speed * 5; // Po 5 sekundach inicjuje się akcja z alarmu 0, czyli boss po tym czasie dalej może atakować</span></span></span> A tu nie powinien ustawiac sie alarm[1] ? GML if( sciana ) // Jeżeli jest sparaliżowany { hp -= 1; // Odejmujemy mu jedno życie sciana = false; // Nie jest już sparaliżowany</span></span> Bo sciane dajesz na false przy kolizji, a z komentarza do tamtego wynika ze po 5 sekundach powinien wykonywac sie alarm[1]. #Edit Nawet jesli sie nie pomyliles to bez sensu dawac to po 5 sekundach w alarmie, jak to samo dzieje sie zaraz przy kolizji. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 31 Maja 2009 Udostępnij Opublikowano 31 Maja 2009 Może zobacz w jakich to eventach, hm? :) Może niedokładnie wytłumaczyłem komentarz, chodziło mi, że po 5 sekundach już nie jest sparaliżowany i może atakować gracza. A sciana = false jeżeli jest kolizja z bohaterem i boss jest sparaliżowany. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 31 Maja 2009 Autor Udostępnij Opublikowano 31 Maja 2009 To jak jest? Trzeba zamienić alarmy? Czy True/false? Bo nie kumam :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 31 Maja 2009 Udostępnij Opublikowano 31 Maja 2009 Może wyjaśnię co zrobiłem... GML (Create) hp = 3; // Ilość "żyć" bossa sciana = false; // Nie jest sparaliżowany canhit = true; // Może uderzyć gracza</span> To chyba jasne, inicjowanie zmiennych GML (Alarm0) sciana = false; GML (Alarm1) canhit = true;Alarmy... GML (Kolizjazesciana) sciana = true; // Jest sparaliżowany alarm[0] = room_speed * 5; // Po 5 sekundach inicjuje się akcja z alarmu 0, czyli boss po tym czasie dalej może atakować</span> Po kolizji ze ścianą jeżeli gracz nie uderzy bossa to po 5 sekundach boss nie jest już sparaliżowany. GML (Kolizjazbohaterem) if( sciana ) // Jeżeli jest sparaliżowany { hp -= 1; // Odejmujemy mu jedno życie sciana = false; // Nie jest już sparaliżowany canhit = false; // Nie może uderzać gracza alarm[1] = room_speed * 3; // Dopiero po 3 sekundach będzie mógł uderzyć gracza } else if( canhit == true ) // Jeżeli nie jest sparaliżowany i może uderzyć gracza room_restart(); // Restart rooma if( hp <= 0 ) // Jeżeli ma 0 lub mniej życia { show_message( 'Wygrales!' ); // Wygrałeś // Możesz sobie też wykonać inne akcje :P } Jeżeli boss jest sparaliżowany i zostanie uderzony przez gracza odejmujemy mu jedno życie, pozwalamy mu chodzić ale nie może uderzyć bohatera przez 3 sekundy ( żeby gracz miał czas na ucieczkę, bez tego po uderzeniu bossa odjęłoby mu życie i zresetowało grę ). Jeżeli boss nie był sparaliżowany restartujemy grę. Po uderzeniu bossa ileś tam razy wyskakuje wiadomość "Wygrałeś". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 31 Maja 2009 Autor Udostępnij Opublikowano 31 Maja 2009 Ale ciągle pokonuje go po razie :( 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ę