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

pierwsza gra w allegro problem z mapką

Ostatnio zmodyfikowano 2010-01-25 17:07
Autor Wiadomość
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.

C/C++
#include <allegro.h>
#include <fstream>
bool walkable;
//******
//MAPA
//******
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 ];
        } //for
    } //while
   
    return true;
}
//************
//KONIEC_MAPA
//************
//TIMER
//************
volatile long speed = 0;
void increment_speed()
{
    speed++;
}
END_OF_FUNCTION( increment_speed );
LOCK_VARIABLE( speed );
LOCK_FUNCTION( increment_speed );
//*************
//KONIEC_TIMER
//*************
//MAIN
//*************
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();
//***********
//KONIEC
//***********
P-12617
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.
P-12634
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ć
P-12651
lynx
» 2010-01-04 17:11:14
Allegro 4 obsługuje też format *.pcx.

Temat rozwiązany czy nie?
:)
P-12713
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.
P-13273
malan
» 2010-01-24 20:49:40
Może chodzi Ci o mapę kafelkową ?
P-13276
mapauu
Temat założony przez niniejszego użytkownika
» 2010-01-25 17:07:46
Tak oto chodziło. Dzięki
P-13298
« 1 »
  Strona 1 z 1