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

Źle działające kolizje

Ostatnio zmodyfikowano 2009-03-21 20:59
Autor Wiadomość
Ju1ian
Temat założony przez niniejszego użytkownika
Źle działające kolizje
» 2009-03-21 17:39:21
Witam ponownie :) Do swojej gierki chciałem dodać przeciwników. Zrobiłem, aby poruszali się w tę i wew tę ;P I nadszedł czas na kolizje (jak go dotchniesz tracisz życie). Wiedziałem, że jest to proste, gdyż wcześniej coś takiego robiłem. Teraz - ku mojemu zdziwieniu, gdy jestem obok pola po którym rusza się przeciwnik (poruszam się o 1 kafel, a duch o kilka pixeli (wolniej)) gdy przeciwnik był Obok (właśnie tak) nastała kolizja. Z drugiej strony próbowałem, ale tak nie było. Z dołu było, a z góry nie. Poza tym wszystko jest dobrze. Kodu tej kolizji już używałem (Autor: EasyKoder). Oto kod:
C/C++
bool kolizja( int x1, int y1, int x2, int y2 )
{
    if( x2 <= x1 + 40 && x2 > x1 && y2 >= y1 && y2 <= y1 + 40 ) return true; else
    if( x2 <= x1 + 40 && x2 > x1 && y2 + 40 >= y1 && y2 + 40 <= y1 + 40 ) return true; else
    if( x2 + 40 <= x1 + 40 && x2 + 40 > x1 && y2 >= y1 && y2 <= y1 + 40 ) return true; else
    if( x2 + 40 <= x1 + 40 && x2 + 40 > x1 && y2 + 40 >= y1 && y2 + 40 <= y1 + 40 ) return true;
    else return false;
   
};
 Dodam, że przeciwnik i ludek mają wymiary 40x40. Pozdrawiam. Ju1ian.
P-4907
DejaVu
» 2009-03-21 17:48:00
Ten kod ma chyba błąd (nie analizowałem), ale jakiś czas temu temat kolizji był poruszany - poszukam i wkleję linka.
P-4910
Ju1ian
Temat założony przez niniejszego użytkownika
» 2009-03-21 17:48:56
Hmm... Ale wcześniej (rok temu) miałem ten sam i działał doskonale.
P-4911
DejaVu
» 2009-03-21 17:56:43
Wydaje mi się, że jednak nie działał.

http://archiwum.ddt.pl/?TextId=1660
P-4914
Ju1ian
Temat założony przez niniejszego użytkownika
» 2009-03-21 18:03:00
Zmieniłem i nadal jest ten sam problem. Chociaż się nie stykam - tracę życie ;/
P-4915
DejaVu
» 2009-03-21 18:08:29
Skoro jest tak jak mówisz to albo masz jakiegoś innego if'a, albo masz za dużo różowego tła dookoła ludka, które wpływa na to, że obiekt wizualnie jest mniejszy, a kolizji używasz wielkości obrazka.
P-4917
Ju1ian
Temat założony przez niniejszego użytkownika
» 2009-03-21 18:11:15
No ifa mam normalnego:
C/C++
if( kolizja(...) ) {
    zycie--;
    player.x = 40;
    //[...]
}
No, a obrazki oba są wielkości kwadratu o boku 40. A ludek porusza się o 40 px.
P-4918
Ju1ian
Temat założony przez niniejszego użytkownika
» 2009-03-21 18:41:04
Jak nie wiesz o co mi chodzi to tu masz Exe'ca: http://www.sendspace.com/file/fifpia
Aby odpalić trzeba mieć Allegro.
P-4921
« 1 » 2
  Strona 1 z 2 Następna strona