spartakus Temat założony przez niniejszego użytkownika |
[Allegro, c++] kolizja, naskok na przeszkodę i ma zniknąć. » 2011-11-08 20:04:43 Witam
Mam dwie bitmapy. Ludka z animacją, którym poruszam sobie strzałkami i skaczę. Druga bitmapa to przeszkoda poruszająca się z prawej strony ekranu na lewą i tak w kółko, jeżeli nastąpi kolizja z nią to odejmuje mi życie i znika sobie, a potem od początku. Teraz do sedna sprawy. Chce żeby przeszkoda zniknęła ,gdy naskoczę na nią, tak jak było to w mario. Nie wiem czy dobrze myślę, ale trzeba by było stworzyć nową kolizję ? czy wystarczy ta EasyKodera. W ogóle jakoś nie mam koncepcji jak za to się zabrać, więc proszę o pomoc, raczej nie jestem zaawansowanym programistą, a bardziej początkującym, więc proszę jak najlepiej wytłumaczyć mi i Z GÓRY DZIĘKUJĘ |
|
SeaMonster131 |
» 2011-11-08 20:08:49 Hm... no gdy nastąpi kolizja, to po prostu przestajesz wyświetlać tą przeszkodę. Mówisz że masz już kolizje, czyli np: przeszkoda.wyswietl = true;
if( kolizja() && przeszkoda.wyswietl ) { gracz.hp--; przeszkoda.wyswietl = false; }
Czyli masz zmienną która odpowiada za wyświetlanie ów przeszkody, kiedy nastąpi kolizja to zmieniasz wartość tej zmiennej na false, więc przeszkoda się nie wyświetla. O to chodziło? #aa, sorki, to tak, musisz zrobić nową kolizję, bądź łatwiej, jeżeli masz jakąś zmienną np gracz.skok = true; - czyli gracz właśnie skacze, czyli warunek mniej więcej tak będzie wyglądac: if( kolizja() && przeszkoda.wyswietl && gracz.skok )
Oczywiście możesz to zrobić inaczej, to tylko przykład :) |
|
DejaVu |
» 2011-11-08 20:10:15 if( dotykaPrzeszkodeZgory( ludek, przeszkoda ) ) usunObiekt( przeszkoda ); |
|
spartakus Temat założony przez niniejszego użytkownika |
» 2011-11-08 20:12:57 Dokładnie to mi chodzi o to ,aby przeszkoda zniknęła TYLKO wtedy gdy naskoczę na nią, czyli jak nastąpi kolizja między górną krawędzią bitmapy przeszkody, a dolną krawędzią bitmapy postaci. a gdy koliza nastąpi: bok przeszkody z ludkiem wtedy ma odejmować życie tak jak to teraz robi, tylko ,że teraz gdy wskoczę na tą przeszkodę to i tak mi odejmuję, a chce żeby przeszkoda wtedy (gdy skoczę na nią) zniknęła i od nowa przechodziła od prawej do lewej, nie wiem czy dobrze wyjaśniłem. Nie wiem jak zrobić taka kolizję ,że gdy tylko dotyka z góry. |
|
SeaMonster131 |
» 2011-11-08 20:14:58 Musisz napisać po prostu odpowiednią kolizję :) |
|
spartakus Temat założony przez niniejszego użytkownika |
» 2011-11-08 20:15:59 tylko problem w tym ,ze nie wiem jak ją napisać za bardzo. |
|
DejaVu |
» 2011-11-08 20:18:49 Na razie to wydaje mi się, że nie wiesz jak zrobić cokolwiek w kodzie... i to nie jest już kwestia kolizji akurat od góry. Jakbyś zaczął pisać i kombinować to byś doszedł do jakiegoś w miarę satysfakcjonującego rozwiązania (pod warunkiem, że znasz podstawy programowania). |
|
OSA_PL |
» 2011-11-08 22:32:36 Ja u siebie sprawdzałem prędkość pionową postaci, tylko trzeba to jeszcze trochę "zabezpieczyć" - musisz sprawdzić czy najpierw nastąpiła kolizja z boku czy z góry. |
|
« 1 » 2 3 4 |