nightbarmare > le C++ est un langage de programmation : cest des codes que tu tapes pour parler et donner des ordres a l´ordinateur : pour faire un logiciel ou un jeu par exemple...
Merci JYY !
j´aurais penser que mon code aurait contenu pleins d´erreurs.
Coté connaissance C et C++, jsuis moyen.
J´ai appris les structures a l´instant, les fonction il y a moin d´une semaine.
En tout cas, tres pratique les structures alliées aux fonctions
Jvais modifier de ce pas mon code ![]()
n´oublie pas, quand tu passes une structure (dans ce cas la en tout cas), de la passer par référence !!
void Blit(Sprite& s)
ou alors pas adresse si tu preferes :
void Blit(Sprite *s)
Mais PAS par copie :
void Blit(Sprite s)
car si tu fais ça, s devient UNE COPIE de l´oringinal : ça met du temps a etre copié, mais surtout, si tu modifies s, alors c´est uniquement la copie qui est modifiée ! ![]()
Donc passe bien avec :
void Blit(Sprite& s)
Ok
Mais j´ai une petite question encore :
Dans le tableau d´images, je charge tout comme ceci ?
SDL_Surface* Tab_Images[5];
Tab_Images[0]=SDL_Surface* raquette;
Tab_Images[1]=SDL_Surface* demon;
Tab_Images[2]=SDL_Surface* balle;
Tab_Images[3]=SDL_Surface* fond;
Tab_Images[4]=SDL_Surface* score;
Salut je débute en C et en voulant compiler un "menu" sous dos et j´ai un probleme de compilation avec
break; , pouvez vous me dire d´ou vient mon erreur ? (faite pas gaffe aux connerie que j´écrit c´est juste que je m´entraine)
la ligne ou est l´erreur est celle ou j´ai mit les >>>>>>>>>>>>>>>><<<<<<<<<< ( j´ai pas compiler avc sa je vous rassure
!
int main(int argc, char *argv[])
{
long choixMenu;
printf ("***Menu***\n\n");
printf ("1. Pizza\n");
prinft ("2. Doner\n");
printf ("3. Spaguetti\n");
printf ("4. Choucroute\n");
printf ("5. Epinar\n");
printf ("\n Votre choix ?" );
scanf ("%ld", &choixMenu);
switch (choixMenu)
case 1 :
printf ("Très bon choix ! Une bonne pizza italienne, et en dessert ?\ n");
break;
case 2 :
printf ("Mmmh un bon doner ! Et en dessert ?\ n");
break;
case 3 :
printf (" Des bonne spaguetti, sa va c´est bon , et en dessert ?\ n");
break;
case 4 :
printf ("De la choucroute... MMMHH ! et en dessert \n");
break;
case 5 :
printf ("Des epinard...Très bon choix, et en dessert ?\ n");
break;
default :
printf (" Nan nan ta rien choisit ! Pour la peine t´aura rien ! Nah\n"):
long choix_dessert;
printf ("***Menu dessert***\n\n")
printf ("1.Glace choco\n");
printf ("2.Gateau \n");
printf ("3.Danette\n");
printf ("\n Votre choix ?! ")
scanf ("%ld",&choix_dessert);
printf ("\n")
}
case 1 :
printf ("Très bon choix , a bientot !\ n");
>>>>>>>>>break;<<<<<<<<<<<<<<<<<<<<
case 2 :
printf (" Des bon gateau ! a bientot\n");
break;
case 3 :
printf ("hep hep hey dannnette daaaaaaanete daneete ! a bientot !\ n");
break;
default :
printf ("Pas de dessert pour toi !" )
Stophe >
met bien des {} autour de ton switch
switch (choixmenu)
{ // <-- tu as oublié ça
case 1 :
...
break;
...
} // <-- tu as oublié çà
dynoplasmma >
tu peux faire directement :
Tab_Images[0]= LoadBMP("raquette.bmp");
Tab_Images[1]= LoadBMP("truc.bmp");
...
![]()
Ah bin oué sa marche mieux ^^
Merci bien JeanYvesYves ![]()
Ah ba vi !
Encore merci JYY ![]()
Oulla !
40 erreur !! !
donc, en gros, deux lignes sont fausses :
rcdst.x = s.x;
rcdst.y = s.y;
Et aucune image n´est declaré. ![]()
Il n´y a "plus que" 36 erreurs :
Voici le code :
http://www.rafb.net/paste/results/iTkox668.html
Voici les erreurs :
Compilateur: Default compiler
Building Makefile: "C:\WINDOWS\Bureau\DEMONS\Makefile.win"
Exécution de make...
make.exe -f "C:\WINDOWS\Bureau\DEMONS\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"C:/DEV-CPP/include/c++/3.3.1" -I"C:/DEV-CPP/include/c++/3.3.1/mingw32" -I"C:/DEV-CPP/include/c++/3.3.1/backward" -I"C:/DEV-CPP/lib/gcc-lib/mingw32/3.3.1/include" -I"C:/DEV-CPP/include"
main.cpp: In function `void Blit(Sprite*)´:
main.cpp:49: error: request for member `x´ in `s´, which is of non-class type `
Sprite*´
main.cpp:50: error: request for member `y´ in `s´, which is of non-class type `
Sprite*´
main.cpp:51: error: syntax error before `*´ token
main.cpp: In function `void initialisation()´:
main.cpp:60: error: `screen´ undeclared (first use this function)
main.cpp:60: error: (Each undeclared identifier is reported only once for each
function it appears in.)
main.cpp: In function `void menu1()´:
main.cpp:126: error: `ecrantitre´ undeclared (first use this function)
main.cpp:127: error: `curseur´ undeclared (first use this function)
main.cpp:138: error: `carre´ undeclared (first use this function)
main.cpp: In function `void menu2()´:
main.cpp:213: error: `manche1´ undeclared (first use this function)
main.cpp:213: error: `BlitSurface´ undeclared (first use this function)
main.cpp:216: error: `trois´ undeclared (first use this function)
main.cpp:217: error: `deux´ undeclared (first use this function)
main.cpp:218: error: `un´ undeclared (first use this function)
main.cpp:219: error: `go´ undeclared (first use this function)
main.cpp:267: error: `r3´ undeclared (first use this function)
main.cpp:299: error: `mec´ undeclared (first use this function)
main.cpp: In function `void menu3()´:
main.cpp:321: error: `manche2´ undeclared (first use this function)
main.cpp:375: error: `r4´ undeclared (first use this function)
main.cpp:417: error: `DFD´ undeclared (first use this function)
main.cpp:418: error: `DGD´ undeclared (first use this function)
main.cpp: In function `void menu4()´:
main.cpp:432: error: `fond´ undeclared (first use this function)
main.cpp:443: error: `DFB´ undeclared (first use this function)
main.cpp:444: error: `DFG´ undeclared (first use this function)
main.cpp:445: error: `DFH´ undeclared (first use this function)
main.cpp:456: error: `DGB´ undeclared (first use this function)
main.cpp:457: error: `DGG´ undeclared (first use this function)
main.cpp:458: error: `DGH´ undeclared (first use this function)
main.cpp:518: error: `r6´ undeclared (first use this function)
main.cpp:524: error: `r7´ undeclared (first use this function)
main.cpp:525: error: syntax error before `if´
main.cpp: At global scope:
main.cpp:575: error: syntax error before `}´ token
main.cpp: In function `void menu5()´:
main.cpp:584: error: `victoireDF´ undeclared (first use this function)
main.cpp: In function `void menu6()´:
main.cpp:596: error: `victoireDG´ undeclared (first use this function)
main.cpp: In function `void menu7()´:
main.cpp:608: error: `credits´ undeclared (first use this function)
main.cpp: In function `void menu8()´:
main.cpp:627: error: `explications´ undeclared (first use this function)
Exécution terminée
PS : jai aussi essayé de gerer le son, mais sans resultats, mais ca cetait avant.
Je suis descendu a 29 erreurs, j´ai corrigé les rectangles restées dans le programme.
Le code : http://www.rafb.net/paste/results/p8PmvJ34.html
Les erreurs : http://www.rafb.net/paste/results/ty0c1017.html
pas ça :
typedef struct Sprite Sprite;
struct Sprite
{
int im;
int x;
int y;
};
mais ça :
typedef struct
{
int im;
int x;
int y;
} Sprite;
Avec ce changement, j´ai autant derreurs ![]()
En fait il me dit que mes pointeurs ne sont pas declarés.
Donc je rajoute : SDL_Surface *fond ...
Et avec ca, j´atteind 239 erreurs !
salut,
bon j´ai bien suivi les tutos pour installer SDL, j´ai fait pas à pas la manip et j´ai toujours ce probleme où devcpp est incapable d ereconnaitre toutes lignes avec SDL dedans. Ca me met un paquet d´erreurs et je peux toujours pas afficher une simple image a l´écran...
Quelqu´un peut me donner une autre manip pour installer SDL ? ou peut-être m´éclairer sur l´endroit om je me trompe?
https://www.jeuxvideo.com/forums/1-31-8416924-1-0-1-0-0.htm
Suit a la lettre ceci, et normalement tu devrais y arriver ![]()
verifie suivant le type d´erreur de compilation que :
- tu ajoute bien -lSDL -lSDLmain -lSDL_image lors de la compilation
- les fichiers .h ou .a sont bien ou il faut.
- tu a les bon includes en ent-tete de tes sources.
et si rien ne marche poste nous ton code et tes erreurs.
Sinon question perso:
j´aimerais pouvoir extraire les informations des fichiers mp3 ( tags id3 ) dans un prog en C/C++. J´ai trouver une librairie qui s´apelle id3lib mais je suis pas tout a fait sur que ça me convienne et en plus j´ai pas compris comment m´en servir ![]()
merci
dynoplasmma > sois bien rigoureux dans tes déclarations et apprend a décoder les messages d´erreur
Tout devrait alors etre simple.
Commence toujours par la 1ere erreur : les autres ne veulent parfois rien dire : il suffit que la premiere erreur fasse "perdre le fil" au compilo, et il t´en genere 200 en + ...
Corrige la premiere, et ça peut faire une réaction enchaine ![]()
je constate que TOUS les SDL_Surface* plantent.
L´erreur vient a priori du SDL_Surface *screen;
main.cpp:28: error: redefinition of `SDL_Surface*screen´
main.cpp:22: error: `SDL_Surface*screen´ previously declared here
Mais apres, pour remedier a cette erreur, je e vois pas du tout !