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

[Allegro,cpp] Zwiększenie pamięci

Ostatnio zmodyfikowano 2012-01-05 23:07
Autor Wiadomość
MrNyna77
Temat założony przez niniejszego użytkownika
[Allegro,cpp] Zwiększenie pamięci
» 2011-12-17 21:40:45
Witam.

Mam banalne pytanie (przynajmniej tak mi się wydaje:)):

Jak zwiększyć dostępną ilość pamięci?

Po załadowaniu 6 obrazków po jakieś 100kB kończy mi się pamięć :(

Pozdrawiam.
P-45805
szyx_yankez
» 2011-12-17 21:48:28
Pewnie coś źle robisz, podaj kod.
P-45807
MrNyna77
Temat założony przez niniejszego użytkownika
» 2011-12-18 11:17:43
C/C++
#include <allegro.h>
#include <string>
int main()
{
    allegro_init();
    install_keyboard();
    set_color_depth( 32 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 );
    clear_to_color( screen, makecol( 0, 0, 0 ) );
    int tab[ 12 ][ 2 ];
    int o = 0, poz = 0;
    for( int y = 0; y <= 320; y += 160 )
    {
        for( int x = 0; x <= 480; x += 160 )
        {
            tab[ o ][ 0 ] = x;
            tab[ o ][ 1 ] = y;
            o++;
        }
    }
    BITMAP * rysunek[ 12 ]; //zla defincja?
    BITMAP * bufor = NULL;
    std::string bmp( ".bmp" ), nazwa;
    char nr( '1' );
    for( int i = 0; i <= 11; i++ )
    {
        nazwa += char( '1' + i );
        nazwa += bmp;
        rysunek[ i ] = load_bmp( nazwa.c_str(), default_palette );
        nazwa =( "" );
        if( !rysunek[ i ] )
        {
            set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
            allegro_message( "brak pamieci" );
            allegro_exit();
            return 0;
        }
    }
    bufor = create_bitmap( 640, 480 );
    while( !key[ KEY_ESC ] )
    {
        for( int i = 0; i <= 11; i++ )
             draw_sprite( bufor, rysunek[ i ], tab[ i ][ 0 ], tab[ i ][ 1 ] );
       
        blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
    }
}

Póki co che tylko wyświetlić te obrazki, a efektem końcowym ma być przesuwaniu pomieszanych kwadratów (160px160px) aby powstał obrazek.
P-45821
SeaMonster131
» 2011-12-18 12:01:21
C/C++
if( !rysunek[ i ] )
{
    set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
    allegro_message( "brak pamieci" );
    allegro_exit();
    return 0;
}
To nie znaczy, że nie ma dostępnej pamięci, tylko nie można załadować bitmapy :)
P-45822
MrNyna77
Temat założony przez niniejszego użytkownika
» 2011-12-18 13:27:14
Ale pierwsze 6 bitmap mogę wyświetlić... Tylko pozostałe się nie ładują :/ Co może być przyczyną?
P-45829
pekfos
» 2011-12-18 13:29:58
nazwa += char( '1' + i );

Wiesz, że dla i >= 9, wynikiem nie będzie liczba?
P-45832
malan
» 2011-12-18 13:31:15
C/C++
int tab[ 12 ][ 2 ];
int o = 0, poz = 0;
for( int y = 0; y <= 320; y += 160 )
{
    for( int x = 0; x <= 480; x += 160 )
    {
        tab[ o ][ 0 ] = x;
        tab[ o ][ 1 ] = y;
        o++;
    }
Aha.
P-45833
MrNyna77
Temat założony przez niniejszego użytkownika
» 2011-12-18 13:42:27
Pekfos znalazł błąd :)
Dzięki będę musiał zmienić nazwy plików (chyba najłatwiej):)

Pozdrawiam.
P-45840
« 1 » 2
  Strona 1 z 2 Następna strona