Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro, c++] kolizja, naskok na przeszkodę i ma zniknąć.

Ostatnio zmodyfikowano 2011-11-20 10:58
Autor Wiadomość
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Ę
P-43595
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:
C/C++
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:

C/C++
if( kolizja() && przeszkoda.wyswietl && gracz.skok )

Oczywiście możesz to zrobić inaczej, to tylko przykład :)
P-43596
DejaVu
» 2011-11-08 20:10:15
C/C++
if( dotykaPrzeszkodeZgory( ludek, przeszkoda ) )
     usunObiekt( przeszkoda );
P-43597
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.
P-43598
SeaMonster131
» 2011-11-08 20:14:58
Musisz napisać po prostu odpowiednią kolizję :)
P-43599
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.
P-43600
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).
P-43601
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.
P-43608
« 1 » 2 3 4
  Strona 1 z 4 Następna strona