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

Allegro dziwne pytanie.

Ostatnio zmodyfikowano 2010-02-28 21:30
Autor Wiadomość
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-02-28 14:51:08
Z getpixel mi wyszlo ale za duzo bylo przy tym pisania itp postanowilem zostac przy tej kolizji:
C/C++
bool kolizja( int x1, int y1, int s1, int w1, int x2, int y2, int s2, int w2 )
{
    if( x2 <= x1 + s1 && x2 > x1 && y2 >= y1 && y2 <= y1 + w1 ) return true; else
    if( x2 <= x1 + s1 && x2 > x1 && y2 + w2 >= y1 && y2 + w2 <= y1 + w1 ) return true; else
    if( x2 + s2 <= x1 + s1 && x2 + s2 > x1 && y2 >= y1 && y2 <= y1 + w1 ) return true; else
    if( x2 + s2 <= x1 + s1 && x2 + s2 > x1 && y2 + w2 >= y1 && y2 + w2 <= y1 + w1 ) return true;
    else return false;
   
};
Dzieki za pomoc
P-14305
malan
» 2010-02-28 15:39:47
C/C++
if( pozycja_ludzika_x >= pozycja_bitmapy_x && pozycja_ludzika_x <= pozycja_bitmapy_x + szeroko ś ć _bitmapy &&
pozycja_ludzika_y >= pozycja_bitmapy_y && pozycja_ludzika_y <= pozycja_bitmapy_y + wysokosc_bitmapy )
     kolizja = true;
else
     kolicja = false;

A takie coś Cie satysfakcjonuje? ;)
P-14310
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-02-28 16:12:07
Tez fajne ale jest błąd zamiast kolizja jest kolicja xD
ale nie chce juz zmieniac .
Mam nowy problem niechce juz zakladac nowego tematu.
C/C++
#include <allegro.h>
class Cpostac
{
public:
    short int x, y;
    short int s, w;
};

bool kolizja( int x1, int y1, int s1, int w1, int x2, int y2, int s2, int w2 )
{
    if( x2 <= x1 + s1 && x2 > x1 && y2 >= y1 && y2 <= y1 + w1 ) return true; else
    if( x2 <= x1 + s1 && x2 > x1 && y2 + w2 >= y1 && y2 + w2 <= y1 + w1 ) return true; else
    if( x2 + s2 <= x1 + s1 && x2 + s2 > x1 && y2 >= y1 && y2 <= y1 + w1 ) return true; else
    if( x2 + s2 <= x1 + s1 && x2 + s2 > x1 && y2 + w2 >= y1 && y2 + w2 <= y1 + w1 ) return true;
    else return false;
   
};

Cpostac ludek1, ludek;
int main()
{
    allegro_init();
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 );
    set_color_depth( 16 );
    BITMAP * bufor = NULL;
    BITMAP * ludeka = NULL;
    BITMAP * ludek1a = NULL;
    BITMAP * tlo = NULL;
    bufor = create_bitmap( 640, 480 );
    tlo = load_bmp( "tlo.bmp", default_palette );
    ////////////
    int tlo_x = 0;
    int tlo_y = 0;
    ludek.x = 100; ludek.y = 100; ludek.s = 40; ludek.w = 40;
    ludek1.x = 300; ludek1.y = 100; ludek1.s = 40; ludek1.w = 40;
   
    clear_to_color( bufor,( 130, 150, 190 ) );
    install_keyboard();
    while( !key[ KEY_ESC ] )
    {
        blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
        masked_blit( tlo, bufor, 0, 0, tlo_y, tlo_y, tlo->w, tlo->h );
        masked_blit( ludeka, bufor, 0, 0, ludek.x, ludek.y, ludek.s, ludek.w );
       
    }
    allegro_exit();
    return( 0 );
}
END_OF_MAIN();
I kompiluje sie ale dosyc ze strasznie wolno chodzi bo widac jak na poczatku kopiuje sie bufor a potem..a potem wlasnie nic wyswielta sie ten blad z "nie wysylaj"
dzieje sie tak gdy dam ta funkcje
masked_blit( ludeka, bufor, 0,0, ludek.x, ludek.y, ludek.s, ludek.w);
P-14314
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-02-28 16:16:14
Dobra juz dziala ale nadal wszystko strasznie wolno dziala musze pary razy esc wcisnac...zeby wyjsc i wszystko wolno sie laduje
///
Nawet jak dalem sterowanie to sie ludek nie rusza
P-14316
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-02-28 16:40:28
Dziala a jak zmienie grafika tla na slabsza...
Jka zrobic zeby przy lepszej chodzila tak samo.
P-14321
malan
» 2010-02-28 21:29:19
Może timer by coś pomógł.
P-14353
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-02-28 21:30:59
Juz mi to dziala zmienilem tylko grafike na slabsza.
...
P-14354
1 « 2 »
Poprzednia strona Strona 2 z 2