Hi peeps!
My program, which i'm about to post, doesn't work. Why is that?
It sais: 142 C:\Users\Fredrik\Desktop\Saker\Projekt\C++\SDL\Lea rn 1\main.cpp void value not ignored as it ought to be
And it's not the only error of that sort. There is like 4 errors of that sort, and thats the only errors. Why am i getting theese errors?
I think it has to do with the key thing.Code://The headers #include "SDL/SDL.h" #include <string> //Screen attributes const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480; const int SCREEN_BPP = 32; //The surfaces SDL_Surface *background = NULL; SDL_Surface *message = NULL; SDL_Surface *screen = NULL; SDL_Surface *piece = NULL; SDL_Surface *up = NULL; SDL_Surface *down = NULL; SDL_Surface *left = NULL; SDL_Surface *right = NULL; //The event structure SDL_Event event; SDL_Surface *load_image( std::string filename ) { //The image that's loaded SDL_Surface* loadedImage = NULL; //The optimized surface that will be used SDL_Surface* optimizedImage = NULL; //Load the image loadedImage = SDL_LoadBMP( filename.c_str() ); //If the image loaded if( loadedImage != NULL ) { //Create an optimized surface optimizedImage = SDL_DisplayFormat( loadedImage ); //Free the old surface SDL_FreeSurface( loadedImage ); } //Return the optimized surface return optimizedImage; } void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination, SDL_Rect* clip = NULL ) { //Holds offsets SDL_Rect offset; //Get offsets offset.x = x; offset.y = y; //Blit SDL_BlitSurface( source, clip, destination, &offset ); } bool init() { //Initialize all SDL subsystems if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 ) { return false; } //Set up the screen screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE ); //If there was in error in setting up the screen if( screen == NULL ) { return false; } //Set the window caption SDL_WM_SetCaption( "Walk-around-game", NULL ); //If everything initialized fine return true; } bool load_files() { //Load the background image background = load_image( "bg.bmp" ); piece = load_image( "piece.bmp" ); //If there was a problem in loading the background if( background == NULL ) { return false; } //If there was a problem in loading the background if( piece == NULL ) { return false; } //If everything loaded fine return true; } void clean_up() { //Free the surfaces SDL_FreeSurface( background ); SDL_FreeSurface( message ); SDL_FreeSurface( piece ); SDL_FreeSurface( up ); SDL_FreeSurface( down ); SDL_FreeSurface( left ); SDL_FreeSurface( right ); //Quit SDL SDL_Quit(); } int main( int argc, char* args[] ) { //Quit flag bool quit = false; //Initialize if( init() == false ) { return 1; } //Load the files if( load_files() == false ) { return 1; } apply_surface( 10, 10, piece, screen ); //Generate the message surfaces up = apply_surface( 10, 0, piece, screen ); down = apply_surface( 10, 20, piece, screen ); left = apply_surface( 0, 10, piece, screen ); right = apply_surface( 20, 10, piece, screen ); //Apply the background apply_surface( 0, 0, background, screen ); //While the user hasn't quit while( quit == false ) { //If there's an event to handle if( SDL_PollEvent( &event ) ) { //If a key was pressed if( event.type == SDL_KEYDOWN ) { //Set the proper message surface switch( event.key.keysym.sym ) { case SDLK_UP: message = up; break; case SDLK_DOWN: message = down; break; case SDLK_LEFT: message = left; break; case SDLK_RIGHT: message = right; break; } } //If the user has Xed out the window else if( event.type == SDL_QUIT ) { //Quit the program quit = true; } } //If a message needs to be displayed if( message != NULL ) { //Apply the background to the screen apply_surface( 0, 0, background, screen ); //Null the surface pointer message = NULL; } //Update the screen if( SDL_Flip( screen ) == -1 ) { return 1; } } //Clean up clean_up(); return 0; }
I really(!) need help! Ty!Code:up = apply_surface( 10, 0, piece, screen ); down = apply_surface( 10, 20, piece, screen ); left = apply_surface( 0, 10, piece, screen ); right = apply_surface( 20, 10, piece, screen );

