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

Tablice wielowymiarowe i wyświetlanie ich zawartości

Ostatnio zmodyfikowano 2012-08-22 19:04
Autor Wiadomość
Temes
Temat założony przez niniejszego użytkownika
Tablice wielowymiarowe i wyświetlanie ich zawartości
» 2012-08-22 18:32:10
Mam otóż taki problem, przeczytałem temat o tablicach i wydaje mi się, że wszystko jest dobrze, a jednak jest źle...

Kody:
MAPA:
C/C++
int Mapa[ 4 ][ 20 ] = {
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
};

WYŚWIETLANIE:
C/C++
for( int ii = 1; ii <= 4; ii++ ) {
    for( int i = 1; i <= 20; i++ ) {
        if( Mapa[ ii ][ i ] == 1 ) al_draw_bitmap( Wall_Normal_01, i * 32, 568 - ii * 32, 0 );
       
        if( Mapa[ ii ][ i ] == 2 ) al_draw_bitmap( Floor_Wood_01, i * 32, 600 - ii * 32, 0 );
       
    }
}

Co widać w grze:

link: http://desmond.imageshack.us/Himg339/scaled.php?server=339&filename=lolnsw.png&res=landing

Proszę mi powiedzieć co jest nei tak, bo nie widzę obrazu

Floor to takie deski, a wall to ta żółta ściana

PS. Postać powinna być, to inna część kodu i ona jest ok. tylko to tło...
P-63324
RazzorFlame
» 2012-08-22 18:52:32
Ahh z tymi tablicami to o ile sie nie myle jest troche inaczej. nie jest kolejność: [x][y] tylko na odwrót xd więc w sprobuj w petli for zamienić te wymiary
P-63327
Gabes
» 2012-08-22 19:04:26
W pętlach for bez znaku równości
ii < 4;
gdybyś dał w klamry to byś zobaczył błąd.
int Mapa[ 4 ][ 20 ] = {
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
  {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}
};
Po co komplikujesz program wykorzystaj funkcje al_draw_bitmap_region,
wyświetlasz tylko fragment 32x32 z bitmapy z paska wys-32, szerokość-dowolna,
scal kafelki w jedną bitmape.
C/C++
for( int y = 0; y < 4; y++ )
for( int x = 0; x < 20; x++ )
     al_draw_bitmap_region( kafelki, 32 * Mapa[ y ][ x ], 0, 32, 32, x * 32, y * 32, 0 );
P-63330
« 1 »
  Strona 1 z 1