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

Nie działająca kolizja

Ostatnio zmodyfikowano 2011-08-13 16:57
Autor Wiadomość
bingo009
Temat założony przez niniejszego użytkownika
Nie działająca kolizja
» 2011-08-12 19:31:20
Witam, znowu mam problem z kolizją. Po przerwie postanowiłem podłubać w moim projekcie i wypociłem coś takiego:
C/C++
if( map[ player_x / 40 ][ player_y / 40 ] == 1 ) kolizja = false; else
if( map[( player_x + 40 ) / 40 ][ player_y / 40 ] == 1 ) kolizja = false; else
if( map[ player_x / 40 ][( player_y + 40 ) / 40 ] == 1 ) kolizja = false; else
if( map[( player_x + 40 ) / 40 ][( player_y + 40 ) / 40 ] == 1 ) kolizja = false;
else kolizja = true;

if( kolizja == true )
{
    textout_ex( screen, font, "Kolizja ;)", 20, 20, makecol( 255, 0, 255 ), - 1 );
}

Wcale nie ma ochoty pracować, nie działa jak należy. W mojej mapce 1 to jedyny kafelek na który może wejść gracz, reszta to już przeszkody. Zapewnie popełniłem błąd w instrukcji if. U mnie gracz ma wielkość 40x40.
P-38993
SeaMonster131
» 2011-08-12 22:19:19
Hm.. gracz ma wielkość 40x40..a pozostałe kafelki też są tej samej wielkości ?
P-39011
Dragonit
» 2011-08-12 22:30:29
zamiast "else if" spróbuj tylko z "if"
P-39018
bingo009
Temat założony przez niniejszego użytkownika
» 2011-08-13 11:13:56
Tak pozostałe kafelki są 40x40, spróbuje tak jak mówi Dragonit

Edit: Niestety, znowu nie działa jak trzeba.
P-39038
Dragonit
» 2011-08-13 11:47:47
Pokaż jak to teraz masz napisane. Bo pewnie masz tak, że "else kolizja = true;" odnosi sie tylko do ostatniego elementu "if".
P-39044
bingo009
Temat założony przez niniejszego użytkownika
» 2011-08-13 11:53:45
Tak mam dokładnie tak, trzeba to teraz zmienić aby odnosiło sie do wszystkich, ale da się tak?

C/C++
if( map[ player_x / 40 ][ player_y / 40 ] == 1 ) kolizja = false;

if( map[( player_x + 40 ) / 40 ][ player_y / 40 ] == 1 ) kolizja = false;

if( map[ player_x / 40 ][( player_y + 40 ) / 40 ] == 1 ) kolizja = false;

if( map[( player_x + 40 ) / 40 ][( player_y + 40 ) / 40 ] == 1 ) kolizja = false;
else kolizja = true;

P-39046
SeaMonster131
» 2011-08-13 11:56:10
trzeba to teraz zmienić aby odnosiło sie do wszystkich, ale da się tak?
Połącz to wszystko w jeden warunek np.
P-39047
kamillo121
» 2011-08-13 13:49:37
Czy w nazwie tematu nie ma błędu ?
nie/działający jak dla mnie powinno być łącznie ale mogę się mylić.
P-39063
« 1 » 2
  Strona 1 z 2 Następna strona