18/12/11 11:06
Salve a tutti,
ho appena iniziato a programmare con la libreria allegro.h. Uso come compilatore Code::Blocks.
Volevo utilizzare la programmazione orientata agli oggetti per creare un gioco del pong. Non sono molto esperto ma penso che bisognerebbe creare un oggetto per il paddle del giocatore e uno per la pallina. Così ho creato il file Platform.h e Platform.cpp. Dopodichè ho creato il file Main.cpp. Penso di aver scritto bene tutto il codice. Secondo me il problema sta che non riesco a includere Main.cpp con l'header Paddle.h
Per linkare prima utilizzavo il prompt dei comandi di visual studio ( scrivevo: cl Main.cpp Nome.cpp ) e andava tutto bene. Ma con la libreria allegro non funziona!
Come posso fare?
Grazie
P.S.: come errori mi dà:
error: expected initializer before 'myPlatform' ( myPlatform è l'oggeto che ho creato )
Nella funzione main()
error: 'myPlatform' was not declared in this scope
ECCO IL CODICE DI MAIN.CPP
ECCO IL CODICE DI PLATFORM.H
ECCO IL CODICE DI PLATFORM.CPP
ho appena iniziato a programmare con la libreria allegro.h. Uso come compilatore Code::Blocks.
Volevo utilizzare la programmazione orientata agli oggetti per creare un gioco del pong. Non sono molto esperto ma penso che bisognerebbe creare un oggetto per il paddle del giocatore e uno per la pallina. Così ho creato il file Platform.h e Platform.cpp. Dopodichè ho creato il file Main.cpp. Penso di aver scritto bene tutto il codice. Secondo me il problema sta che non riesco a includere Main.cpp con l'header Paddle.h
Per linkare prima utilizzavo il prompt dei comandi di visual studio ( scrivevo: cl Main.cpp Nome.cpp ) e andava tutto bene. Ma con la libreria allegro non funziona!
Come posso fare?
Grazie
P.S.: come errori mi dà:
error: expected initializer before 'myPlatform' ( myPlatform è l'oggeto che ho creato )
Nella funzione main()
error: 'myPlatform' was not declared in this scope
ECCO IL CODICE DI MAIN.CPP
#include "allegro.h" #include "Platform.h" Platform myPlatform (320, 370); void doppioBuffering ( void ); void doppioBuffering( void ) { vsync(); blit ( buf, screen, 0, 0, 0, 0, 640, 400 ); clear ( buf ); } int main ( int argc, char **argv ) { allegro_init(); install_keyboard(); set_color_depth ( 32 ); set_palette ( colori ); set_gfx_mode ( GFX_AUTODETECT, 640, 400, 0, 0 ); buf = create_bitmap ( 640, 400 ); clear ( buf ); Platform = load_bmp ( "platform.bmp", colori ); while ( !key[KEY_ESC] ) { myPlatform.makePlatform(); myPlatform.movimentoPlatform(); } } END_OF_MAIN();
ECCO IL CODICE DI PLATFORM.H
#ifndef PLATFORM_H_INCLUDED #define PLATFORM_H_INCLUDED #include "allegro.h" BITMAP *buf, *Platform; PALETTE colori; class Platform { public: Platform ( int, int ); void makePlatform ( void ); void movimentoPlatform ( void ); private: int xPlatform, yPlatform; } #endif // PLATFORM_H_INCLUDED
ECCO IL CODICE DI PLATFORM.CPP
#include "Platform.h" #include "allegro.h" Platform::Platform ( int x, int y ) { xPlatform = x; yPlatform = y; } void Platform::makePlatform ( void ) { draw_sprite ( buf, myPlatform, xPlatform, yPlatform ); } void Platform::movimentoPlatform ( void ) { if ( key[KEY_LEFT] && xPlatform >= 0 ) xPlatform -= 4; if ( key[KEY_RIGHT] && xPlatoform <= 640 ) xPlatform += 4; }
Ultima modifica effettuata da 18/12/11 17:19