ridic14 Temat założony przez niniejszego użytkownika |
Kółko i krzyżyk w allegro » 2012-07-14 18:40:00 zrobiłem pewien programik i nie chce zmienić wyświetlanego bmp zawsze daje kółko narazie pierwsze trzy pola a pętla się cały czas wykonuje czyli po kliknięciu zmienia gracza i powinno dać inny bmp #include <allegro.h>
void gra() { BITMAP * bufor = NULL; BITMAP * mapa = NULL; BITMAP * o = NULL; BITMAP * x = NULL; BITMAP * znak = NULL; bufor = create_bitmap( 640, 480 ); mapa = load_bmp( "mapa.bmp", default_palette ); x = load_bmp( "x.bmp", default_palette ); o = load_bmp( "xo.bmp", default_palette ); bool wolnya1 = false; bool wolnya2 = false; bool wolnya3 = false; bool wolnyb1 = false; bool wolnyb2 = false; bool wolnyb3 = false; bool wolnyc1 = false; bool wolnyc2 = false; bool wolnyc3 = false; while( !key[ KEY_Q ] ) { int gracz = 1; if( gracz == 1 ) { znak = o; } else if( gracz == 2 ) { znak = x; } if( mouse_y < 122 && mouse_y > 26 && mouse_x < 238 && mouse_x > 143 && mouse_b == 1 && wolnya1 == false ) { if( gracz == 1 ) { gracz = 2; } else if( gracz == 2 ) { gracz = 1; } masked_blit( znak, mapa, 0, 0, 140, 30, screen->w, screen->h ); blit( mapa, bufor, 0, 0, 0, 0, screen->w, screen->h ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); wolnya2 == true; } if( mouse_y < 119 && mouse_y > 30 && mouse_x < 385 && mouse_x > 248 && mouse_b == 1 && wolnya2 == false ) { if( gracz == 1 ) { gracz = 2; } else if( gracz == 2 ) { gracz = 1; } masked_blit( znak, mapa, 0, 0, 258, 30, screen->w, screen->h ); blit( mapa, bufor, 0, 0, 0, 0, screen->w, screen->h ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); wolnya2 == true; } if( mouse_y < 121 && mouse_y > 37 && mouse_x < 483 && mouse_x > 388 && mouse_b == 1 && wolnya3 == false ) { if( gracz == 1 ) { gracz = 2; } else if( gracz == 2 ) { gracz = 1; } masked_blit( znak, mapa, 0, 0, 388, 35, screen->w, screen->h ); blit( mapa, bufor, 0, 0, 0, 0, screen->w, screen->h ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); wolnya3 == true; } blit( mapa, bufor, 0, 0, 0, 0, screen->w, screen->h ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); } }
co tu jest źle |
|
ridic14 Temat założony przez niniejszego użytkownika |
» 2012-07-14 19:36:35 Zauważyłem że pierwsza zmienna int gracz = 1; nie powinna być poza pętlą ale gdy ją tam zabiorę to program rysuje X i O na raz w tym samym polu!!?!!?? |
|
ridic14 Temat założony przez niniejszego użytkownika |
» 2012-07-14 20:22:03 Udało się trochę zmieniłem każdy if oto jeden z nich: if( mouse_y < 122 && mouse_y > 26 && mouse_x < 238 && mouse_x > 143 && mouse_b == 1 && wolnya1 == true && gracz == 1 ) { gracz = 2; masked_blit( o, mapa, 0, 0, 140, 30, screen->w, screen->h ); blit( mapa, bufor, 0, 0, 0, 0, screen->w, screen->h ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); wolnya1 = false; } cytat z jednego tematu : specjalnie nic nie odpowiadacie żeby ktoś sam rozwiązał problem??? |
|
xevuel |
» 2012-07-14 20:51:11 To ja zaofftopuję, w (mam nadzieję) słusznej sprawie. specjalnie nic nie odpowiadacie żeby ktoś sam rozwiązał problem??? |
Nie, możesz mi wierzyć, że nie dlatego. Powodów nieodpowiadania jest kilka: Jeśli choć jeden z tych punktów dotyczy Ciebie, nie dziw się, że musisz czekać na odpowiedź. W Twoim przypadku: Zamykam ponownie. |
|
« 1 » |