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

Krzywa kolizja Allergro

Ostatnio zmodyfikowano 2011-07-27 12:37
Autor Wiadomość
bingo009
Temat założony przez niniejszego użytkownika
Krzywa kolizja Allergro
» 2011-07-26 21:12:39
witam was serdecznie, od pewnego czasu męczę się z kolizją. Zmajstrowałem sobie funkcję, i ona niby działa, tylko raz wskakuje szybciej po zetknięciu, a innym razem muszę całym playerem wjechać na kafelek. Czyli tak, na jednym rogu wystarczy że tylko delikatnie zetknę się ze ścianą i już kolizja działą, a innym razem znowu muszę całym playerem na ściane wjechać. Co jest nie tak?

C/C++
if( map[( player_y + player_x ) / 40 ][ player_y / 40 ] == 1 )
{
    textout_ex( screen, font, "Kolizja", 20, 20, makecol( 255, 0, 255 ), - 1 );
}

Używam wyświetlania mapy by easykoder, lecz działa mi dziwnie, jak w tablicy jest 1 to wtedy program pokazuje kafelek 2, jak jest 5 to wtedy pokazuje 6 itd itp. Czy to jest przyczyną problemu? Lecz myślę że tak powinno być.
P-37173
malan
» 2011-07-26 21:39:18
Widocznie sprawdzasz kolizje tylko z jednym z wierzchołków Twojego obiektu.
Nawiązując do mapy - kafelki numerujemy od zera.
P-37175
bingo009
Temat założony przez niniejszego użytkownika
» 2011-07-27 10:24:29
No też prawda, czyli wporządku. U mnie gracz może dotknąć tylko kafelka numer 1, więc proszę o pomoc z tą funkcją.
P-37242
SeaMonster131
» 2011-07-27 10:37:31
No masz 4 wierzchołki i spr czy z którymś występuje kolizja.

player.x; player.y
 to pierwszy wierzchołek (lewy górny)
player.x + player.w; player.y
 to drugi wierzchołek (prawy górny)
player.x; player.y + player.h
 to trzeci wierzchołek (lewy dolny)
player.x + player.w; player.y + player.h
 to czwarty wierzchołek (prawy dolny)

I teraz spr dla każdego kolizję :)
P-37244
bingo009
Temat założony przez niniejszego użytkownika
» 2011-07-27 11:47:13
Ok dobrze, dzięki za podpowiedź.
P-37247
bingo009
Temat założony przez niniejszego użytkownika
» 2011-07-27 12:37:05
Też coś marnie działa, pokomibunje jeszcze z nią dzięki,
P-37248
« 1 »
  Strona 1 z 1