Serwis został przeniesiony pod nową domenę: http://cpp0x.pl/
PowrótPowrótHistoria odwiedzonych stron
AutorWiadomość
Data: 2010-06-03 15:14:16

konrad
[Allegro, C++] Błędna kolejność bitmap podczas wyświetlania

najważniejsze części kodu

deklaracja zmiennych:

int state = 0, menu = 0;


obrazki:

start1 = load_bmp("images/start1.bmp",default_palette);
if (!start1)
{
  set_gfx_mode(GFX_TEXT,0,0,0,0);
  allegro_message("nie mogę załadować obrazka start1 !");
  allegro_exit();
  return 0;
}

start2 = load_bmp("images/start2.bmp",default_palette);
if (!start2)
{
  set_gfx_mode(GFX_TEXT,0,0,0,0);
  allegro_message("nie mogę załadować obrazka start2 !");
  allegro_exit();
  return 0;
}

wyjscie1 = load_bmp("images/wyjscie1.bmp",default_palette);
if (!wyjscie1)
{
  set_gfx_mode(GFX_TEXT,0,0,0,0);
  allegro_message("nie mogę załadować obrazka wyjscie1 !");
  allegro_exit();
  return 0;
}

wyjscie2 = load_bmp("images/wyjscie2.bmp",default_palette);
if (!wyjscie2)
{
  set_gfx_mode(GFX_TEXT,0,0,0,0);
  allegro_message("nie mogę załadować obrazka wyjscie2 !");
  allegro_exit();
  return 0;
}



wyświetlanie:

if(state == 0){
  if(menu == 0){
    clear_to_color(bufor, makecol(150,150,150));
    masked_blit( start1, bufor, 0,0, 100, 100, 257, 63);
    masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63);
    blit( bufor, screen, 0,0,0,0, 640,480);
    if( key[KEY_DOWN]){
      menu++;
    }
  }
  else if(menu == 1){
    clear_to_color(bufor, makecol(150,150,150));
    masked_blit( start1, bufor, 0,0, 100, 100, 257, 63);
    masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63);
    blit( bufor, screen, 0,0,0,0, 640,480);
    if( key[KEY_UP]){
      menu--;
    }
  }

}



powinny wyświetlać się obrazki start1 i wyjscie2 przynajmniej tak mi się wydaje :D
a wyświetlają się obrazki start1 i wyjscie1, co źle zrobiłem ?
//edit oj przepraszam po prostu odwrotnie nazwałem obrazki :D
ale nie działa mi zmiana obrazków czyli

if( key[KEY_DOWN]){
  menu++;
}
i
if( key[KEY_UP]){
  menu--;
}


^^możliwe że zmienna się zmienia ale obrazki nie pewnie coś skopałem

Data: 2010-06-03 15:43:37

ison


w tym miejscu:


if(state == 0){
  if(menu == 0){
    clear_to_color(bufor, makecol(150,150,150));
    masked_blit( start1, bufor, 0,0, 100, 100, 257, 63);
    masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63);
    blit( bufor, screen, 0,0,0,0, 640,480);
    if( key[KEY_DOWN]){
      menu++;
    }
  }
  else if(menu == 1){
    clear_to_color(bufor, makecol(150,150,150));
    masked_blit( start1, bufor, 0,0, 100, 100, 257, 63);
    masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63);
    blit( bufor, screen, 0,0,0,0, 640,480);
    if( key[KEY_UP]){
      menu--;
    }
  }

}



przeciez ty w obu przypadkach wyswietlasz zawsze te same bitmapy... rozumiem że można pisać o swoim problemie na forum ale bez przesady, lepiej najpierw pomyśleć, bo tego typu błędy widzi się na pierwszy rzut oka...

Data: 2010-06-03 15:53:35

konrad


no niestety ja tak mam i w c++ i w php zrobię głupi mały błąd i szukam go 2 godziny

while( !key[KEY_ESC])
{

  while( speed > 0)
  {
    if(state == 0){
      if(menu == 0){
        clear_to_color(bufor, makecol(150,150,150));
        masked_blit( start1, bufor, 0,0, 100, 100, 257, 63);
        masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63);
        blit( bufor, screen, 0,0,0,0, 640,480);
        if( key[KEY_DOWN]) menu=1;

      }
      else if(menu == 1){
        clear_to_color(bufor, makecol(150,150,150));
        masked_blit( start2, bufor, 0,0, 100, 100, 257, 63);
        masked_blit( wyjscie1, bufor, 0,0, 100, 200, 257, 63);
        blit( bufor, screen, 0,0,0,0, 640,480);
        if( key[KEY_UP]) menu=0;
      }

    }
    else if(state == 1){
      if( key[KEY_LEFT]) ludek_x--;
      if( key[KEY_RIGHT]) ludek_x++;
      if( key[KEY_UP]) ludek_y--;
      if( key[KEY_DOWN]) ludek_y++;

      speed--;
    }
  }

  clear_to_color(bufor, makecol(150,150,150));
  masked_blit( ludek, bufor, 0,0, ludek_x, ludek_y, ludek->w, ludek->h);
  blit( bufor, screen, 0,0,0,0, 640,480);
  if(menu == 0){
    clear_to_color(bufor, makecol(150,150,150));
    masked_blit( start1, bufor, 0,0, 100, 100, 257, 63);
    masked_blit( wyjscie2, bufor, 0,0, 100, 200, 257, 63);
    blit( bufor, screen, 0,0,0,0, 640,480);
  }
  else if(menu == 1){
    clear_to_color(bufor, makecol(150,150,150));
    masked_blit( start2, bufor, 0,0, 100, 100, 257, 63);
    masked_blit( wyjscie1, bufor, 0,0, 100, 200, 257, 63);
    blit( bufor, screen, 0,0,0,0, 640,480);
  }
}

remove_int( increment_speed);

destroy_bitmap(ludek);
destroy_bitmap(bufor);
destroy_bitmap(start1);
destroy_bitmap(start2);
destroy_bitmap(wyjscie1);
destroy_bitmap(wyjscie2);
allegro_exit();
return (0);
}
END_OF_MAIN();


naciskając klawisz esc program się nie zamyka pewnie znowu jakiś głupi błąd ale nie mogę go znaleść

Data: 2010-06-03 17:40:38

lenrokskate


od czego jest log kompilacji w IDE? Tam ładnie pisze jaki jest błąd i w której linijce...

Data: 2010-06-03 17:43:46

konrad


nie ma żadnego błędu i dzieje się to tylko w menu gry ale już wszystko dobrze w menu gry zrobiłem wyjście i git

1



Statystyki tematuOstatnio przeczytali
Czytało użytkowników:13malan, SeaMonster131, pixelmaster, Iname (√ιק), TheLukon, konrad, madmike44, lenrokskate, szyx_yankez, michalp
Przeczytało użytkowników:10
Czytało osób ogólnie:24
Przeczytało osób ogólnie:17



PowrótPowrótHistoria odwiedzonych stron
Panel Logowania
Login:
Hasło:

Użytkowników
Obecnie aktywnych:11
Zalogowanych:0
Zarejestrowanych:4367
Ostatnie 24h:539
Non-cookie 24h:2688
Wszystkich:214122
Ostatnia Aktualizacja
2010-09-01 19:27:34 (4 dni temu)
Ostatnio aktywni
wiew35 min
Koni46 min
Mateusz12448 min
fish1375 min
wiewiorka88 min
lenrokskate8 godz
dmx8111 godz
steckel11 godz
pixelmaster15 godz
maciejo15 godz
jurasnumeras15 godz
Imperator_Edi16 godz

Wynajem Sopot - wakacje
Pokój 2 osobowy 130zł/doba;
Lokalizacja: Sopot


O portaluArchiwumHistoriaIndeksRegulaminWyszukiwarkaLinki
Kurs HTML - strona WWW za darmoRestauracja "ATOL" - SopotValid HTML 4.01 TransitionalValid CSS!HTML CSS JavaScript FLASH PHP MySQL