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

[Allegro 5] Odblokowywanie bitmapy - al_unlock_bitmap

Ostatnio zmodyfikowano 2013-07-15 15:35
Autor Wiadomość
Forczek
Temat założony przez niniejszego użytkownika
[Allegro 5] Odblokowywanie bitmapy - al_unlock_bitmap
» 2013-07-15 14:21:51
Siemka, mam pytanie. Dam najpierw kawałek kodu:
C/C++
bool colision( ALLEGRO_BITMAP * sprite, ALLEGRO_BITMAP * postac, int pozycja_x, int pozycja_y )
{
    int x, y;
    bool czy_wykrylo = false;
    unsigned char r, g, b;
    al_lock_bitmap( sprite, ALLEGRO_LOCK_READONLY, al_get_bitmap_format( sprite ) );
    for( x = pozycja_x; x <= pozycja_x + al_get_bitmap_width( postac ); x++ )
    {
        for( y = pozycja_y; y <= pozycja_y + al_get_bitmap_height( postac ); y++ )
        {
            al_unmap_rgb( al_get_pixel( sprite, x, y ), & r, & g, & b );
            if( r == 0 && g == 0 && b == 0 )
            {
                czy_wykrylo = true;
            }
        }
        if( czy_wykrylo ) break;
       
    }
    al_unlock_bitmap( sprite );
    if( czy_wykrylo )
    {
        czy_wykrylo = false;
        return true;
    }
    else
    {
        return false;
    }
}
Czy zawszę muszę używać
al_unlock_bitmap( sprite );
 Bo w mojej grze zwalnia on i to dosyć w dużym stopniu tempo gry. Czy też mogę używać tego tylko wtedy gdy chcę wykonać jakąś operacje na bitmapie itp.
P-87949
pekfos
» 2013-07-15 14:25:26
Zawsze jak używasz al_lock_bitmap().
P-87951
Forczek
Temat założony przez niniejszego użytkownika
» 2013-07-15 14:33:55
A co by się stało gdybym tego nie robił?
P-87955
DejaVu
» 2013-07-15 15:35:55
1. Poczytaj dokumentację:
http://cpp0x.pl/dokumentacja​/Allegro-5-0/al_unlock_bitmap​/1555

2. Skoro uważasz, że linijka jest zbędna - usuń ją. Prędzej czy później zauważysz skutki uboczne jeżeli linijka była potrzebna.
P-87966
« 1 »
  Strona 1 z 1