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

[Allegro, C++] Kolizja postaci z botem

Ostatnio zmodyfikowano 2010-05-31 13:18
Autor Wiadomość
lemis.aryl
Temat założony przez niniejszego użytkownika
[Allegro, C++] Kolizja postaci z botem
» 2010-05-30 18:57:36
Mam taką funkcję dla kolizji:
C/C++
bool kolizja( int x1, int y1, int x2, int y2 ) {
    if( x2 < x1 + 60 && x2 + 60 > x1 && y2 < y1 + 60 && y2 + 60 > y1 ) { return true; }
    else { return false; }
}
i dwie postacie. Jedną steruję ja, a druga chodzi sobie z punktu A do punktu B.
Chciałbym zrobić tak, żeby moja postać nie mogła wejść na tą drugą więc wywołałem funkcję:
C/C++
if( kolizja( ludek_x, ludek_y, dre.x, dre.y ) == true ) {
    if( key[ KEY_LEFT ] ) { ludek.x++; }
    if( key[ KEY_RIGHT ] ) { ludek.x--; }
    if( key[ KEY_UP ] ) { ludek.y++; }
    if( key[ KEY_DOWN ] ) { ludek.y--; }
}
Tylko, że to działa trochę inaczej niż chciałem. Gdy wejdę swoją postacią w drogę tej drugiej postaci, to ta druga postać nie potrafi przeze mnie przejść(i dobrze). Ale gdy ja próbuję przejść przez tą drugą postać to tylko moja postać trochę zwalnia i chodzi sobie po drugiej normalnie.
Dlaczego tak się dzieje?
P-17371
DejaVu
» 2010-05-31 01:20:16
W największym skrócie: bo tak oprogramowałeś :)
P-17380
lemis.aryl
Temat założony przez niniejszego użytkownika
» 2010-05-31 08:32:33
No tak. Ale dlaczego moja postać tylko zwalnia, a się nie zatrzymuje?
P-17381
szyx_yankez
» 2010-05-31 12:21:47
Może masz coś nie tak z timerami np. jeden wolniejszy a drugi szybszy.
P-17382
lemis.aryl
Temat założony przez niniejszego użytkownika
» 2010-05-31 13:18:52
Druga postać zatrzymuje mi się ponieważ:
C/C++
if( kolizja(...) == false {
   
    //funkcje poruszające drugą postacią
   
} else if( kolizja(...) == true {
    if( key[ KEY_RIGHT ] ) { ludek.x--; }
    if( key[ KEY_LEFT ] ) { ludek.x++; }
    if( key[ KEY_DOWN ] ) { ludek.y--; }
    if( key[ KEY_UP ] ) { ludek.y++; }
}
Jeśli kolizja jest prawdziwa nie wykonuje funkcji poruszających drugą postacią.

Pisząc tego posta chyba sam sobie odpowiedziałem. Teraz już nie mam czasu, żeby to sprawdzić, ale może zrobić tak samo z postacią pierwszą.
P-17385
« 1 »
  Strona 1 z 1