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ść
DejaVu
» 2009-03-21 18:48:58
Wklej linijkę, która wywołuje funkcję kolizji. Moim zdaniem masz za dużego ludka o 1 px lub za dużego potworka o 1px (albo jedno i drugie).
P-4922
Ju1ian
Temat założony przez niniejszego użytkownika
» 2009-03-21 19:04:57
if( kolizja( player_x, player_y, duch_x, duch_y ) )
(szerokość i wysokość pominąłem, bo oba mają 40x40 zresztą możesz to sprawdzić w folderze z grą, który wysłałem)
P-4923
DejaVu
» 2009-03-21 19:10:32
Cóż... czekasz na gotowe rozwiązanie, a odpowiedź masz w poście wyżej.

Podpowiedź:
C/C++
int szerokosc = 40;
int x1 = pozycja_x;
int x2 = pozycja_x + szerokosc - 1;
if( x2 - x1 + 1 == szerokosc )
{
    cout << "ok";
} else
{
    cout << "jest różnica";
} //else
P-4924
Ju1ian
Temat założony przez niniejszego użytkownika
» 2009-03-21 19:43:02
No nie czekam na gotowe rozwiązanie, tylko na jakieś nakierowanie, np. przyczyny problemu. Jedną podałeś - ale ta u mnie nie występuję. A tak BTW. W tym kodzie powinno być chyba x2=player_x+szerokość, bo tak jak masz, to jak jest dobrze - pokazuje, że jest źle.
EDIT: Zmieniłem 40 na 39 i działa ;P Dzięki. Pozdrawiam
P-4927
DejaVu
» 2009-03-21 19:49:22
Poprawiłem kod. Narysuj sobie kwadrat na kartce o boku 1cm. Policz ile masz punktów przecinających się z kratkami, a ile jest kratek w tej samej osi.
P-4928
Ju1ian
Temat założony przez niniejszego użytkownika
» 2009-03-21 20:59:27
Tzn. działa już wszystko. To 39 zmieniłem w funkcji kolizji. Pozdr
P-4931
1 « 2 »
Poprzednia strona Strona 2 z 2