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: 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 |
|
malan |
» 2010-02-28 15:39:47 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? ;) |
|
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. #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); |
|
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 |
|
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. |
|
malan |
» 2010-02-28 21:29:19 Może timer by coś pomógł. |
|
Bartaz Temat założony przez niniejszego użytkownika |
... » 2010-02-28 21:30:59 Juz mi to dziala zmienilem tylko grafike na slabsza. ... |
|
1 « 2 » |