J'essaye d'écrire mon propre jeu, et ai fait face au problème intéressantClasses C++. Le code ne fonctionnera pas
Quel est le problème avec le croiseur de classe? pourquoi ça ne marchera pas? Aidez-moi s'il vous plaît je lis vraiment beaucoup sur ce
P.s: il est ne compile pas en raison de 59, 60, 69, 70, etc. avec l'erreur: attendu expression primaire avant "" jeton
Ps: i googlé environ 2 jours
#include <SDL.h>
#include <SDL_draw.h>
#include <SDL_ttf.h>
#include <cstdlib>
#include <time.h>
#include <SDL_image.h>
using namespace std;
class cruiser;
class level
{
public:
level(SDL_Surface *battleground)
{
screen = battleground;
SDL_Surface *background = SDL_LoadBMP("textures/phone.bmp");
SDL_BlitSurface(background,NULL,screen,NULL);
SDL_Flip(screen);
cruiser cruiser(SDL_Surface *screen);
//SDL_Delay(4000);
}
private:
SDL_Surface *screen;
friend cruiser;
};
int main(int argc, char *argv[])
{
SDL_Surface *screen;
if(SDL_Init(SDL_INIT_EVERYTHING)) //проверка на ошибку вывода SDL_init
{
fprintf(stderr,"Ошибка SDL: %s\n",SDL_GetError());
return 1;
}
atexit(SDL_Quit); //выход после успешного включения SDL_init
screen = SDL_SetVideoMode(1024,768,32,SDL_ANYFORMAT); //пока юзается ток разрешения формата 4:3, мб исправлю чё, но вроде норм
if(!screen)
{
fprintf(stderr,"Unable to set 1024x768 video: %s\n",SDL_GetError());
return 1;
}
// SDL_Quit();
level level(screen);
return 0;
}
class cruiser
{
public:
cruiser(SDL_Surface *screen)
{
SDL_Surface *battleship = IMG_Load("textures/battleship.png");
SDL_Rect dstrect;
SDL_Event event;
dstrect.x = 1024/2;
dstrect.y = 768/2;
SDL_BlitSurface(battleship,NULL,level.screen,&dstrect);
SDL_Flip(level.screen);
while(1)
{
if(SDL_PollEvent(&event))
{
if(event.key.keysym.sym==SDLK_LEFT&&dstrect.x>70)
{
dstrect.x-=5;
battleship = IMG_Load("textures/battleship.png");
SDL_BlitSurface(battleship,NULL,level.screen,&dstrect);
SDL_Flip(level.screen);
event.key.keysym.sym==NULL;
}
if(event.key.keysym.sym==SDLK_RIGHT&&dstrect.x<(1024-200))
{
dstrect.x+=5;
battleship = IMG_Load("textures/battleship.png");
SDL_BlitSurface(battleship,NULL,level.screen,&dstrect);
SDL_Flip(level.screen);
event.key.keysym.sym==NULL;
}
if(event.key.keysym.sym==SDLK_ESCAPE)
{
exit(0);
}
SDL_Delay(100);
battleship = IMG_Load("textures/battleship.png");
SDL_BlitSurface(battleship,NULL,level.screen,&dstrect);
SDL_Flip(level.screen);
}
}
}
//private:
//friend
};
'cruiser cruiser (SDL_Surface * écran);' - Qu'est-ce que c'est censé faire? Tout cela est de déclarer une fonction - il n'appelle pas de fonction. – PaulMcKenzie
@PaulMcKenzie Je veux que ce travail tout toghether doit montrer fond + navire de guerre qui peut être déplacé par l'utilisateur –