DeBugger |
» 2009-08-14 13:45:03 W funkcji main, przed pętlą while.
Następnym razem - jedno pytanie - jeden temat. Zamykam. |
|
kitty177 Temat założony przez niniejszego użytkownika |
» 2009-08-14 15:13:43 Otwieram Wiem że robi sie to troche upierdliwe, ale jak mam ja wstawic? Pisze load_mapa;, albo load_mapa(); i dalej niedziala, jak mam to zrobic prosze pomozcie
Ps: Problem z pierwszego postu jeszcze nie zostal rozwiazany wiec mam prawo pisac calyczas w jednym temacie |
|
DeBugger |
» 2009-08-14 16:44:14 Sorry, ale pisze z Debiana, gdzie nie ma polskich znakow. Jezeli prototyp wyglada tak: void load_mapa( const char * ) To musisz jako argument wpisac lokalizacje pliku. Prosze przeczytac kurs jeszcze raz, jezeli nie wiesz w ogole jak uzywac funkcji. |
|
kitty177 Temat założony przez niniejszego użytkownika |
» 2009-08-15 10:18:30 Uzylam takiego zapisu: skompilowalo sie bez bledow , juz nie wyswietla samych '0' tylko takze inne tekstury, ale w chaotycznej kolejnosci a nie tak jak mam w plik.txt. Co jest zle? |
|
DejaVu |
» 2009-08-15 13:16:20 Moim zdaniem źle napisałaś pętle for. Powinnaś wczytywać wiersz po wierszu, a nie kolumna po kolumnie. |
|
kitty177 Temat założony przez niniejszego użytkownika |
» 2009-08-15 13:55:34 nawet gdy zamienilam miejscami a i b to bylo zle |
|
DejaVu |
» 2009-08-15 14:22:47 1) Sprawdź czy ilość cyfr w wierszu w pliku wynosi 16. 2) Wypełnij wszystkie wiersze zerami 3) Wypełnij cały jeden wiersz jakąś inną teksturą (np. 1) 4) Zobacz efekt jaki otrzymasz. Powinno Ci to pomóc w ustaleniu co się faktycznie dzieje z danymi |
|
kitty177 Temat założony przez niniejszego użytkownika |
» 2009-08-15 16:05:31 Teraz jest prawie wszystko dobrze: http://img9.imageshack.us/i/mapamnj.png/Jedynie mapa jest za bardzo do gory. Wklejam kod, sama sprobuje znalezc blad, ale jak na razie nic mi sie w oczy nie rzucilo: #include <allegro.h> #include <fstream>
int mapa_x = 0, mapa_y = 0; const int pola_x = 16; const int pola_y = 12; BITMAP * teren = NULL; BITMAP * bufor = NULL;
short int map[ 12 ][ 16 ];
bool load_mapa( const char * f_sFileName ) { std::fstream plik; plik.open( "plik.txt", std::ios::in ); if( !plik.good() ) return false; std::string wiersz; while( getline( plik, wiersz ) ) { for( int i = 0; i < wiersz.length(); i++ ) { for( int a = 0; a < pola_y; a++ ) { for( int b = 0; b < pola_x; b++ ) { plik >> map[ a ][ b ]; } } } } return true; }
void wys_mape() { int licznik_x, licznik_y; for( licznik_x = 0; licznik_x < 16; licznik_x++ ) { for( licznik_y = 0; licznik_y < 12; licznik_y++ ) { blit( teren, bufor, ( map[ licznik_y + mapa_y ][ licznik_x + mapa_x ] % 4 ) * 40, ( map[ licznik_y + mapa_y ][ licznik_x + mapa_x ] / 4 ) * 40, licznik_x * 40, licznik_y * 40, 40, 40 ); } } };
int postac_x = 80, postac_y = 80; int x = 1, y = 1;
load_mapa( "plik.txt" );
while( !key[ KEY_ESC ] ) { if(( key[ KEY_RIGHT ] ) &&( map[ y ][ x + 1 ] == 0 ) ) { postac_x += 40; x++; rest( 200 ); } if(( key[ KEY_LEFT ] ) &&( map[ y ][ x - 1 ] == 0 ) ) { postac_x -= 40; x--; rest( 200 ); } if(( key[ KEY_DOWN ] ) &&( map[ y + 1 ][ x ] == 0 ) ) { postac_y += 40; y++; rest( 200 ); } if(( key[ KEY_UP ] ) &&( map[ y - 1 ][ x ] == 0 ) ) { postac_y -= 40; y--; rest( 200 ); } clear_to_color( bufor, makecol( 150, 150, 150 ) ); wys_mape(); blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
|
|
1 « 2 » 3 |