CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Programme SDL qui marche pas ??

le_rider-killer
le_rider-killer
Niveau 6
08 août 2005 à 23:24:55

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é :

  1. include < windows.h>
  2. include < sdl/sdl.h>
  1. pragma comment(lib,"sdl.lib")
  2. 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

Vengeur41
Vengeur41
Niveau 10
08 août 2005 à 23:27:17

Tu utilise Dev-c++ ?

le_rider-killer
le_rider-killer
Niveau 6
08 août 2005 à 23:30:19

a oui je l´ai pas mis.
Donc oui j´utilise Dev-c++ .
J´ai bien fait toute les modifs n´ésséserent pour qu´un prog SDL marche.
voilà

le_rider-killer
le_rider-killer
Niveau 6
08 août 2005 à 23:44:13

et j´ai pas de Joystiks mais apparament ce n´est pas important

Moule53
Moule53
Niveau 10
08 août 2005 à 23:46:29
  1. pragma comment(lib,"sdl.lib")
  2. pragma comment(lib,"sdlmain.lib")

On n´utilise ça que pour Visual C++ je crois bien, pour Dev-Cpp c´est une autre démarche pour utiliser les lib ( d´ailleurs c´est expliqué dans la rubrique Installation de SDL dans le tuto de JYY)

Mais pas sur :)

Vengeur41
Vengeur41
Niveau 10
08 août 2005 à 23:53:19

Oui faut ajouter ca en options ( GCC) :
-lSDLmain -lSDL

le_rider-killer
le_rider-killer
Niveau 6
09 août 2005 à 00:01:53

j´ai enlevé les truc qui ne servent que pour visual C++ j´avais déjà mis la ligne dans les option du projet et sa ne marche toujour pas, il ne veut pas se compiler.
JYY=JeanYvesYves et c´est lui qui a fait ce tuto ben je saivais pas.
Enfin c´est pas le probleme

Virtuality
Virtuality
Niveau 8
09 août 2005 à 09:25:31

Tu as bien mis les dll?

JeanYvesYves
JeanYvesYves
Niveau 10
09 août 2005 à 11:18:24

Quels erreurs as tu ? liste les ici.
Est ce que ça compile ? est ce que l´exe est généré ?
merci de nous dire ou ça ne marche pas.

le_rider-killer
le_rider-killer
Niveau 6
09 août 2005 à 13:29:22

Oui j´ai bien mis les dll.
Le probleme c´est que sa ne veut pas compilé.
Voilà si vous avez besoin de d´autres renseignement pour m´aider n´hésiter pas a demander.
merci

Virtuality
Virtuality
Niveau 8
09 août 2005 à 13:50:10

copie les erreurs que tu obtient ici.

JeanYvesYves
JeanYvesYves
Niveau 10
09 août 2005 à 14:26:15

" Le probleme c´est que sa ne veut pas compilé. "

si tu ne comprends pas ma question, je ne peux rien faire pour toi...
donne nous exactement les erreurs que tu as.

le_rider-killer
le_rider-killer
Niveau 6
09 août 2005 à 18:45:13

C:\Dev-Cpp\Makefile.win [Build Error] [mainGérerJoy.o] Error 1
j´ai trouver que sa a dire car il n´y nul part d´autre une erreur

le_rider-killer
le_rider-killer
Niveau 6
09 août 2005 à 18:45:56

il y a rien d´afficher a rouge comme sa peut arriver par fois

JeanYvesYves
JeanYvesYves
Niveau 10
09 août 2005 à 18:52:20

le_rider-killer > y´a que ça ? y´avait pas - par hasard - marqué " undefined reference to . .."

erreur de link, vérifie les :
-lSDLmain -lSDL

Perdu_de_linfo
Perdu_de_linfo
Niveau 9
09 août 2005 à 18:56:04

et t´es sur que ta pas mis un I à la place dun l ? :-p

( c´est ce que j´avais fais au début lol^^)

le_rider-killer
le_rider-killer
Niveau 6
09 août 2005 à 19:05:04

aucun undefined reference to . .. ( ou alors je l´ai pas vu, mais sa serait ou)
j´ai bien mis -lSDLmain -lSDL
et comme j´ai fait un copier-coller de la source du tuto impossible qu´il y ai une erreur

Vengeur41
Vengeur41
Niveau 10
09 août 2005 à 19:12:21

-lmingw32 -lSDLmain -lSDL -lgdi32 -luser32

jlinke tout ca moi quand j´ai des problèmes...

le_rider-killer
le_rider-killer
Niveau 6
09 août 2005 à 19:19:22

marche pas non plus

Perdu_de_linfo
Perdu_de_linfo
Niveau 9
09 août 2005 à 19:25:46

Bon, dernier truc qui me vient en tete :
ta mis ou le répertoire SDL?
Car tu peu le mettre soit dans le dossier de ton compilo, soit directement dans le répertoire de ton projet ( c´est juste une question de linkage après)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment