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

[Allegro, C++] Problem z Grabberem, błąd w kodzie

Ostatnio zmodyfikowano 2010-06-30 15:28
Autor Wiadomość
Scot
Temat założony przez niniejszego użytkownika
[Allegro, C++] Problem z Grabberem, błąd w kodzie
» 2010-06-30 14:12:19
A wiec mam kolejny dylemat z którym się już troszkę mecze , wydaje mi się ze jestem coraz bliższy sukcesu jednak cały czas jest coś nie tak . Problem pojawia sie nie w samym utworzeniu .dat lecz w zmianie kodu . Oto błąd :
base operand of `->' is not a pointer 
A o to sam kod , w nieco skróconej wersji :
C/C++
#include <allegro.h>
#include "data.h"

//nic co by miało znaczenie

int main()
{
    allegro_init();
    install_keyboard();
    set_color_depth( 16 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 1200, 950, 0, 0 );
    clear_to_color( screen, makecol( 128, 128, 128 ) );
   
   
    //DATA
    DATAFILE * data;
    data = load_datafile( "data.dat" );
    if( !data )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Nie moze znalesc pliku data.dat!\n" );
        allegro_exit();
    }
   
   
    //MAPA
    BITMAP * mapax = NULL;
    mapax =( BITMAP * ) data[ mapa ].dat;
   
   
    //BUFOR
    BITMAP * bufor = NULL;
    bufor = create_bitmap( 1200, 950 );
    if( !bufor )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Nie mogę utworzyć bufora !" );
        allegro_exit();
        return 0;
    }
   
   
   
    //POSTAC
    BITMAP * postac = NULL;
    postac = load_bmp( "postac.bmp", default_palette );
    if( !postac )
    {
       
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "nie mogę załadować postac.bmp !" );
        allegro_exit();
        return 0;
    }
   
    int postac_x = 5, postac_y = 455;
    int mapa_x = 0, mapa_y = 0;
   
    while( !key[ KEY_ESC ] )
    {
       
        // Tutaj sa wszystkie fukcje jednak nie maja one zadnego wplywu na plik    ktory jest umieszczony w .dat
       
        clear_to_color( bufor, makecol( 150, 150, 150 ) );
        masked_blit( mapax, bufor, 0, 0, 0, 0, mapa->w, mapa->h ); //<<W tej linii jest blad
        masked_blit( postac, bufor, 0, 0, postac_x, postac_y, postac->w, postac->h );
        blit( bufor, screen, 0, 0, 0, 0, bufor->w, bufor->h );
       
    }
    //dalsza cześć jest również nie istotna
Prosiłbym o poprawienie kodu tak by bez problemu plik map.bmp był bez problemu odczytywany z .dat i wyjaśnienie tego , co zrobiłem źle .
P-18434
malan
» 2010-06-30 14:19:39
mapa->w, mapa->h
... nie powinno być czasem:
mapax->w, mapax->h
?
P-18435
Scot
Temat założony przez niniejszego użytkownika
» 2010-06-30 15:28:53
Heh , tyle siedzialem i patrzylem na kod i nie widzialem bledu , bylem pewny ze powodem jest brak umiejetnosci uzywania grabbera w kodzie a tu prosze , powodem jest slepota . Dziekuje bardzo , wlasnie to byl moj problem .
P-18437
« 1 »
  Strona 1 z 1