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

[Allegro 5] Kolizje per pixel

Ostatnio zmodyfikowano 2013-07-15 13:48
Autor Wiadomość
kubawal
» 2013-07-09 17:19:55
No to podaj kod odpowiedzialny za to twoje
postać nie zapadała się w dół
 i
jest wzniesienie, on szedł pod tą górkę
.
Bo na razie to prawie tak, jakbyś napisał coś takiego:

Siemka, mam problem, rozwiążcie go, jestem w tej kwestii zielony
:D
P-87329
pekfos
» 2013-07-09 17:51:50
No to podaj kod odpowiedzialny za to twoje
Z tego co zrozumiałem, on się pyta, jak to napisać (czyli kodu nie ma)

postać nie zapadała się w dół
Sprawdzaj, czy nowa pozycja gracza nie koliduje z podłożem.

jest wzniesienie, on szedł pod tą górkę
Jeśli postać od boku koliduje z podłożem, znajdź dogodną pozycję na wzniesieniu.

A gdy przeszkoda to, żeby musiał przeskoczyć :/
..a jeśli takiej nie ma, to trzeba skakać (o ile przeszkoda to tylko odpowiednio strome wzniesienie). Jeśli przeszkody chcesz sprawdzać oddzielnie, to tu nie ma już czego tłumaczyć..
P-87335
Forczek
Temat założony przez niniejszego użytkownika
» 2013-07-09 18:49:00
No już powoli coś łapię, tylko nie nadal nie rozumiem chyba do końca kolizji pixel per pixel. Nie wiem jak odczytuje się pozycje pixeli czarnych. Gdzie to się zapisuje i jak z tego odczytać, jeżeli bd to wiedzieć, to wtedy chyba poradzę sobie z resztą.
P-87341
Forczek
Temat założony przez niniejszego użytkownika
» 2013-07-12 15:30:13
Pomorze ktoś? Bo nie wiem jak zapisuje się pozycje pixeli poszczególnych kolorów. Z resztą już sobie poradzę.
P-87644
pekfos
» 2013-07-12 18:03:58
P-87666
Forczek
Temat założony przez niniejszego użytkownika
» 2013-07-13 12:28:04
Dobrze, ale nadal w tym kodzie
ALLEGRO_COLOR al_get_pixel( ALLEGRO_BITMAP * bitmap, int x, int y )
 nie rozumiem po co są zmienne x i y. One służą do podania współrzędnych pixela do sprawdzenia, czy może szerokości i długości bitmapy?
P-87727
SeaMonster131
» 2013-07-13 12:34:39
nie rozumiem po co są zmienne x i y.
Logicznie rzecz biorąc,
x, y
 to pozycja, natomiast
w, h
 to wielkość. Więc nie wiem czego Ty tutaj nie rozumiesz.
P-87728
Forczek
Temat założony przez niniejszego użytkownika
» 2013-07-13 13:13:04
Nadal nie rozumiem i coś czuję, że robię rażący błąd.
C/C++
//poza petla
int x, y;
int r, g, b;
bool kolizja_dolu;

//w petli

ALLEGRO_LOCKED_REGION * lock = al_lock_bitmap( kolizja, ALLEGRO_PIXEL_FORMAT_ANY, ALLEGRO_LOCK_READWRITE );
for( int i = 0; i <= 50; i++ )
{
    y = ludek_y - 75;
    x = ludek_x + i;
    ALLEGRO_COLOR color = al_get_pixel( kolizja, x, y );
    al_unmap_rgb( color,( unsigned char * ) & r,( unsigned char * ) & g,( unsigned char * ) & b );
    if( r == 255 && g == 255 && b == 255 )
    {
        kolizja_dolu = true;
    }
}
if( kolizja_dolu == true )
{
    al_draw_text( font, al_map_rgb( 255, 0, 0 ), 400, 389, ALLEGRO_ALIGN_CENTRE, "Udalo sie" );
}
Wydaje mi się, że nie mam zielonego pojęcia co robię :/ ludek ma wysokość 75 i szerokość 50 pixeli.
P-87730
1 « 2 » 3 4 5 6
Poprzednia strona Strona 2 z 6 Następna strona