Bonsoir a tous.
Voilà je suis entrain d´apprendre le C++ et plus particulierement le SDL ( en ce moment) sur le site que voisi. http://perso.numericable.fr/~fvirtman/info/tuto/index.html
d´ailleur je le recommande fortement, il est génial, bravo a celui qui l´a écrit un(e) vrai génie.
Bon passons a mon probleme :
J´en suis au 2.1.4 du site montrer plus haut ( si vous voulez apprendre le C++ allé y c´est gratuit ( c´était pour faire une rime lol)) je remet le code source pour éviter d´aller le recherché :
- include < windows.h>
- include < sdl/sdl.h>
- pragma comment(lib,"sdl.lib")
- pragma comment(lib,"sdlmain.lib")
char key[400];
int xsouris=0,xrelsouris=0,yrelsouris=0,ysouris=0;
char boutons[3]={0,0,0};
SDL_Surface* screen;
SDL_Surface* font;
SDL_Rect Rect(int x,int y,int w,int h) // pour faire un rectangle plus vite
{
SDL_Rect r;
r.x=(short)x;
r.y=(short)y;
r.w=(short)w;
r.h=(short)h;
return r;
}
SDL_Surface* LoadImageSDL(char* fichier,int vram)
{
SDL_Surface* f = SDL_LoadBMP(fichier);
SDL_Surface* r = NULL;
if ( vram)
r=SDL_CreateRGBSurface(SDL_HWSURFACE, f->w, f->h, 32, 0, 0, 0, 0);
if ( r==NULL) vram=0;
if ( !vram)
r=SDL_CreateRGBSurface(SDL_SWSURFACE, f->w, f->h, 32, 0, 0, 0, 0);
SDL_Rect R=Rect(0,0,f->w,f->h);
SDL_BlitSurface(f,NULL,r,&);
SDL_FreeSurface(f);
return r;
}
void Blit(SDL_Surface* source,int x1,int y1,int x2,int y2,SDL_Surface* dest,int x3,int y3)
{
SDL_Rect S=Rect(x1,y1,x2-x1+1,y2-y1+1);
SDL_Rect D=Rect(x3,y3,0,0);
SDL_Rect* pS=&
if ( x1<0)
pS=NULL;
SDL_BlitSurface(source,pS,dest,&);
}
void PrintSDL(SDL_Surface* font,SDL_Surface* dest,int x,int y,char* text,...)
{
char buf[500];
int i;
int inx,iny;
int w,h;
va_list args;
va_start(args,text);
vsprintf(buf,text,args);
va_end(args);
w = font->w/16;
h = font->h/14;
for(i=0;i<(int)strlen(buf);i++)
{
inx=w*((unsigned char)(buf[i])%16);
iny=h*((unsigned char)(buf[i])/16-2); / / on saute les 31 premiers codes ASCII
if ( iny-h>font->h)
return;
Blit(font,inx,iny,inx+w,iny+h,dest,x,y);
x+=w;
}
}
void UpdateEvents()
{
SDL_Event event;
while(SDL_PollEvent(&))
{
switch ( event.type)
{
case SDL_KEYDOWN:
key[event.key.keysym.sym]=1;
break;
case SDL_KEYUP:
key[event.key.keysym.sym]=0;
break;
case SDL_MOUSEMOTION:
xsouris=event.motion.x;
ysouris=event.motion.y;
xrelsouris=event.motion.xrel;
yrelsouris=event.motion.yrel;
break;
case SDL_MOUSEBUTTONDOWN:
boutons[event.button.button-1]=1;
break;
case SDL_MOUSEBUTTONUP:
boutons[event.button.button-1]=0;
break;
}
}
}
int main(int argc,char** argv)
{
SDL_Joystick *joy;
int i,j;
SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK);
screen=SDL_SetVideoMode(800,600,32,SDL_HWSURFACE|
SDL_DOUBLEBUF);
SDL_ShowCursor(0);
font = LoadImageSDL("font.bmp",1);
while(1)
{
UpdateEvents();
if ( key[SDLK_RETURN])
break;
PrintSDL(font,screen,10,100,"Controle evenements...");
PrintSDL(font,screen,10,120,"Souris : x = %d y = %d ( relatif : %d %d) boutons : ( %d %d %d)
\n",xsouris,ysouris,xrelsouris,yrelsouris,boutons[
0],boutons[1],boutons[2]);
PrintSDL(font,screen,10,140,"Nombre Joysticks : %d\n",SDL_NumJoysticks());
for(i=0;i<SDL_NumJoysticks();i++)
{
PrintSDL(font,screen,10,160+i*120,"Joystick 1 : %s\n",SDL_JoystickName(i));
joy=SDL_JoystickOpen(i);
SDL_JoystickUpdate();
PrintSDL(font,screen,10,180+i*120,"Nombre d´axes : %d valeurs : \n",SDL_JoystickNumAxes(joy));
for(j=0;j<SDL_JoystickNumAxes(joy);j++)
PrintSDL(font,screen,450+j*80,180+i*120,"%d " ,SDL_JoystickGetAxis(joy,j));
PrintSDL(font,screen,10,200+i*120,"Nombre de champignons : %d valeurs : \n",SDL_JoystickNumHats(joy));
for(j=0;j<SDL_JoystickNumHats(joy);j++)
PrintSDL(font,screen,450+j*50,200+i*120,"%d " ,SDL_JoystickGetHat(joy,j));
PrintSDL(font,screen,10,220+i*120,"Nombre de boutons : %d valeurs : \n",SDL_JoystickNumButtons(joy));
for(j=0;j<SDL_JoystickNumButtons(joy);j++)
PrintSDL(font,screen,450+j*50,220+i*120,"%d " ,SDL_JoystickGetButton(joy,j));
SDL_JoystickClose(joy);
}
SDL_Flip(screen);
}
return 0;
}
chez moi sa ne marche pas du coup j´ai pas bien compris le tuto ( oui sa m´arrive ( souvent) ) .
Si quelqu´un pouvait me dire pourquoi ce programme ne marche pas je lui en serait reconnaissant.
Merci a tous et merci d´avoir pris le temps de me lire.
Bonne soirée