mapauu Temat założony przez niniejszego użytkownika |
pierwsza gra w allegro problem z mapką » 2010-01-01 13:57:09 Witam wszystkich! Na naszym forum znalazłem temat którego szukałem na temat map do gier i ...znalazłem:). ok do rzeczy: główne pytanie to w jakim "formacie" zapisać tą mapę(nie chodzi mi o rozszerzenie pliku,a raczej... Co jak nie bitmapa?) Proszę o pomoc. #include <allegro.h> #include <fstream> bool walkable;
int map[ 80 ][ 60 ];
bool load_mapa( const char * f_sFileName ) { std::fstream plik; plik.open( "mapa.txt", std::ios::in ); if( !plik.good() ) return false; std::string wiersz; while( getline( plik, wiersz ) ) { for( int i = 0; i < wiersz.length(); i++ ) { plik >> map[ 80 ][ 60 ]; } } return true; }
volatile long speed = 0; void increment_speed() { speed++; } END_OF_FUNCTION( increment_speed ); LOCK_VARIABLE( speed ); LOCK_FUNCTION( increment_speed );
int main() { allegro_init(); install_keyboard(); set_color_depth( 16 ); set_gfx_mode( GFX_AUTODETECT, 800, 600, 0, 0 ); clear_to_color( screen, makecol( 128, 128, 128 ) ); install_timer(); install_int_ex( increment_speed, BPS_TO_TIMER( 100 ) ); BITMAP * bufor = NULL; BITMAP * ludek = NULL; BITMAP * mapa = NULL; mapa = load_bitmap( "mapa.txt", default_palette ); bufor = create_bitmap( 800, 600 ); if( !bufor ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie mogę utworzyć bufora !" ); allegro_exit(); return 0; } ludek = load_bmp( "ludek.bmp", default_palette ); if( !ludek ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka Ludek !" ); allegro_exit(); return 0; } int ludek_x = 100, ludek_y = 100; while( !key[ KEY_ESC ] ) { while( speed > 0 ) { 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( 127, 127, 127 ) ); masked_blit( ludek, bufor, 0, 0, ludek_x, ludek_y, ludek->w, ludek->h ); blit( bufor, screen, 0, 0, 0, 0, 800, 600 ); } destroy_bitmap( mapa ); destroy_bitmap( ludek ); destroy_bitmap( bufor ); allegro_exit(); return 0; } END_OF_MAIN();
|
|
DejaVu |
» 2010-01-01 20:05:42 1) Jeśli pytałeś się o formaty plików to: Allegro 4.x obsługuje tylko i wyłącznie BMP (i chyba TGA). Inne formaty plików wymagają użycia dodatkowych bibliotek, np. alpng. 2) Jeśli pytasz się o przechowywanie własnych map do gry to może być to dowolny format danych. Mapę zazwyczaj przechowuje się w tablicy dla gier 2D. 3) Jeśli chodziło o coś innego - to nie zrozumiałem o co Ci chodzi z treści Twojego posta. |
|
mapauu Temat założony przez niniejszego użytkownika |
» 2010-01-02 13:50:44 Format plików graficznych dobrze byłoby gdyby to był *.gif w celu zrobienia animacji ale ten problem da się rozwiązać za pomocą timera. Co do przechowywania map to akurat wiem. Tamten problem już rozwiązałem (w sumie jak przeanalizowałem kod to przy wskaźnikach bitmap musiałem być chyba ślepy żeby tego nie zauważyć), mam jeszcze kilka problemów ale nie bezpośrednio związanych z tym(ciężko to nazwać grą) jeszcze trochę poczytam potem wrócę tu jeszcze coś napisać
|
|
lynx |
» 2010-01-04 17:11:14 Allegro 4 obsługuje też format *.pcx.
Temat rozwiązany czy nie? :) |
|
mapauu Temat założony przez niniejszego użytkownika |
» 2010-01-24 19:56:01 Właśnie nie bardzo może inaczej. Jak plik np. "mapa.map" wczytać do tablicy następnie jak przypisać poszczególnym elementom tablicy ich odpowiednie bitmapy, dalej muszę jeszcze kilka funkcji napisać ale z tym to myślę że nie będzie problemu. |
|
malan |
» 2010-01-24 20:49:40 |
|
mapauu Temat założony przez niniejszego użytkownika |
» 2010-01-25 17:07:46 Tak oto chodziło. Dzięki |
|
« 1 » |