Bartaz Temat założony przez niniejszego użytkownika |
Allegro mapa sie nie wyswietla » 2011-03-14 20:35:41 Witam
tak jak w temacie nie wiem co jest nie tak tu daje kod odpowiedzialny za wyswietlanie mapy:
void mapa() { short int mapa[ 30 ][ 30 ] = { 0, 0, 0, 0 }; for( int x = 0; x > 10; x++ ) { for( int y = 0; y > 10; y++ ) { if( mapa[ x ][ y ] == 0 ) { blit( droga_pionowa, bufor, 0, 0, map_x + x * szerokosc_kafla, y * wysokosc_kafla, szerokosc_kafla, wysokosc_kafla ); } } } };
A tutaj caly kod:
#include <allegro.h> #include <math.h>
double kat = 123.0; int szerokosc_kafla = 130; int wysokosc_kafla = 130; int map_x; int map_y; int x; int y;
BITMAP * bufor = NULL; BITMAP * autobus = NULL; BITMAP * droga_pionowa = NULL; BITMAP * droga_pozioma = NULL;
class cautobus { public: float x; float y; float v; cautobus(); }; cautobus::cautobus() { x = 300; y = 500; v = 0; }
cautobus class_autobus;
void allegro_start() { allegro_init(); install_keyboard(); set_color_depth( 32 ); set_gfx_mode( GFX_AUTODETECT, 1100, 700, 0, 0 ); clear_to_color( screen, makecol( 7, 128, 128 ) ); };
void load_bitmaps() { autobus = load_bitmap( "autobus.bmp", default_palette ); droga_pionowa = load_bitmap( "droga_pionowo.bmp", default_palette ); droga_pozioma = load_bitmap( "droga_poziomo.bmp", default_palette ); };
void create_bitmaps() { bufor = create_bitmap( 1100, 700 ); };
void show_bitmaps() { rotate_sprite( bufor, autobus,( int ) round( class_autobus.x ),( int ) round( class_autobus.y ), ftofix(( kat * 256 ) / 360.0 ) ); masked_blit( bufor, screen, 0, 0, 0, 0, 1100, 700 ); }; void clear_bufor() { clear_to_color( bufor, makecol( 70, 70, 70 ) ); };
void control_bus() { if( key[ KEY_LEFT ] ) kat -= 0.3; if( key[ KEY_RIGHT ] ) kat += 0.3; if( key[ KEY_UP ] ) class_autobus.v += 0.01; if( key[ KEY_DOWN ] ) class_autobus.v -= 0.007; if( class_autobus.v > 5 ) class_autobus.v = 5; if( class_autobus.v <- 3 ) class_autobus.v =- 3; class_autobus.v *= 0.99; class_autobus.x += class_autobus.v * cos(( kat * M_PI ) / 180.0 ); class_autobus.y += class_autobus.v * sin(( kat * M_PI ) / 180.0 ); };
void mapa() { short int mapa[ 30 ][ 30 ] = { 0, 0, 0, 0 }; for( int x = 0; x > 10; x++ ) { for( int y = 0; y > 10; y++ ) { if( mapa[ x ][ y ] == 0 ) { blit( droga_pionowa, bufor, 0, 0, map_x + x * szerokosc_kafla, y * wysokosc_kafla, szerokosc_kafla, wysokosc_kafla ); } } } };
int main() { allegro_start(); create_bitmaps(); load_bitmaps(); while( !key[ KEY_ESC ] ) { control_bus(); clear_bufor(); mapa(); show_bitmaps(); } allegro_exit(); return 0; } END_OF_MAIN();
|
|
ison |
» 2011-03-14 20:48:54 nie dziwie się że masz problemy jeśli w ogóle nie robisz wcięć w kodzie, też bym się w tym pogubił (jeśli już tak bardzo nie lubisz wcięć to wstawiaj chociaż kod w [cpp][/cpp]) |
|
DejaVu |
» 2011-03-14 20:55:16 1. Tablica jest zmienną lokalną funkcji, więc idzie do piachu po jej wywołaniu.
2. Nie jest cała zainicjalizowana.
|
|
Bartaz Temat założony przez niniejszego użytkownika |
» 2011-03-14 21:04:13 @Dejavu Jak nie jest cala ?to co ja tam mam jeszcze napisac? |
|
malan |
» 2011-03-14 21:53:56 Ja tu widzę książkowy, głupi błąd ;p. Podpowiem, że w pętli ;p |
|
Bartaz Temat założony przez niniejszego użytkownika |
» 2011-03-14 22:10:19 Chodzi ci o "> <" ? jak to to juz to rozwiazalem i niby sie wyswietla ale nie dokladnie xd w sensie ze kafelki nie sa tam gdzie chce .Kod teraz wyglada tak
short int mapa[ 3 ][ 4 ] = { 1, 1, 1 , 1 }; for( int x = 0; x < 3; x++ ) { for( int y = 0; y < 3; y++ ) { if( mapa[ x ][ y ] == 1 ) { blit( droga_pionowa, bufor, 0, 0, map_x + x * szerokosc_kafla, y * wysokosc_kafla, szerokosc_kafla, wysokosc_kafla );
|
|
malan |
» 2011-03-14 22:13:55 |
|
Bartaz Temat założony przez niniejszego użytkownika |
» 2011-03-14 22:19:20 Tego map_x++ itp nie ma bo to dopiero dam jak bede chcial poruszyc mapa. Wiem ze jest zly kiedys z niego korzystalem i udalo mi sie go naprawic ale teraz cos mi nie idze xd Potrzebne mi to a nie easykoder'a bo potem bede mial duzo obrazkow i roznej wielkosci itp. Moze znasz jakis inny sposob na wyswietlanie z plikow jak tu a nie ze pare obrazkow z jednej bitmapy? |
|
« 1 » 2 |