de m´avoir dit même les autres
autrement tu aurait la réponse pour ma questions sur le SDL? Si tu ne l´as pas ce n´est pas grave.
non, tu ne peut pas charger de TGA ( ou n´importe quel autre type de fichier image) de cette manière tout simplement parce que la fonction SDL_LoadTGA n´existe pas.
Par contre il existe une bibliothèque SDL_Image que tu peut télécharger sur le site de la SDL qui fournit ce genre de fonction pour charger d´autre type de fichiers image.
Ok encore
vous êtes vraimment sympas sur ce forum ![]()
Euh encore une petite question ( j´ai déjà tester plusieurs fois mais j´y arrive pas), en faite je voudrait tous simplement qu´a la suite d´un dialogue moi/pc il y est une image qui apparaisse, mais quand je met le code pour une image à la fin ( ou au début) du code pour le dialogue l´ordis me met toujours une erreur qui n´en ai pas une ( enfin à ma connaissance lol donc s´en ai surement une).
euh après encore un test il n´y a plus d´erreur mais maintenat le texte marche, mais il n´y a pas d´images après... Donc si vous aviez la solution à ce petit problèmes ce serait sympathique, après je pense que je vous laisserez enfin tranquille pour....euh jusqu´a demain ![]()
Euh désolé pour le triple post, mais finalement sa ne remarche plus....... je met donc les deux codes à la suite ( en ne faisant que un, si vous me comprenez
) et l´ordi me met une erreur ( la même qu´avant) qui me parait ( encore) stupide, donc je met sa: ( euh c´est juste le début du codes biensur)
using namespace std;
main()
{
char A[16];
L´ordi me dit que la ligne ou il y " {" et fausse donc je ne voit pas pourquoi elle est fausse étant donné qu´elle fait partie du codes ou il y a juste un dialogue qui lui marche normalement ( euh il est compiler à part en faite).
ps:
pour le triple post...
normal, il ne connait pas le namespace std.
Si tu fait des entrée sortie avec cin et cout rajoutte le header iostream ( pas de . h à la fin) qui va déclarer les objets cin et cout. De plus il les déclarera à l´intérieur du namespace std d´où l´utilisation de la directive using.
si ça ne marche pas après, wall ton code ( là par exemple : http://rafb.net/paste/ ) et recopi exactement ( copier coller) les erreurs du compilateur, c´est un impératif absolu de donner les erreurs. Et non pas de dire : " là il me dit que c´est faux..."
Ok encore ![]()
Suis ***, je l´avais déjà mit le " iostream" lol j´ai oublier de le copier/coller, par contre avec mes blem de réseau je ne peut pas envoyer le code sur ce site car c´est trop long.....
Lol sa y est j´ai corriger le premier bug, mais maintenant c´est le début du code de l´image SDL qui foire, donc en faite ma première erreur était: main() au lieu de int main()
Au faite si quelqu´un sait pourquoi ont doit mettre un int ici
de me le dire et donc je vais essayer de corriger sa tous seul encore
pour l´aide et les conseil fourni ![]()
C´est la valeur de retour de la fonction, quand tu mets return 0;, tu donnes à la fonction la valeur 0. Ben si tu mets int, tu peux retourner un entier, si tu mets bool, un 0 ou un 1 etc.
non, la " norme" du C ( enfin l´une des normes, celle que suis Dev C++) t´oblige à déclarer int la fonction main. Avc VC++ ce n´est pas obliger tu peut la déclarer void par exemple.
Bon, c´est juste une habitude à prendre sous Dev, effectivement, j´avais pas pensé à ça dans ton copier coller.
Bon maintenant le code marche sans que le logiciel dise qu´il y est une ou plusieurs fautes, mais, le dialogue se fait normalement puis l´ordi saute l´étape de l´affichage de l´image et dit directement " appuyez sur une touche pour quitter", donc la je ne sait plus lol.
probablement une bête erreurs de logique ( genre tu oublie de faire un événement pour attendre la suite, ou que sais-je) mais si tu ne paste pas ton code quelque part ( ou pire ici, si tu n´a aucune autre possibilité) on ne peut vraiment pas t´aider.
SDL_Surface* screen; // l´ecran principale
SDL_Surface* firstscreen; / / tampon temporaire
SDL_Event event; // gestion d´evenement
void init_SDL() // initialise SDL
{
SDL_Init(SDL_INIT_VIDEO); // preapare SDL
screen = SDL_SetVideoMode(1024, 768, 32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN); / / mode graphique
SDL_ShowCursor(0); / / eneleve la souris
}
void waitkey() // attend qu´on appuie sur RETURN
{
while(1) // boucle
{
while(SDL_PollEvent(&)) // aquisition d´evenement
{
if ( event.type == SDL_KEYDOWN) / / on appuie sur une touche ?
{
if ( event.key.keysym.sym == SDLK_RETURN) return; / / c´est " RETURN" ?
}
}
}
}
using namespace std;
int main()
{
SDL_Rect rect1; // structure rectangle
init_SDL(); // initialise ( plus haut)
firstscreen = SDL_LoadBMP("legolas.bmp"); // charge l´image
/ / on dessine
rect1.x = 0;
rect1.y = 0;
rect1.w = 1280; // défini le rectangle
rect1.h = 1024;
SDL_BlitSurface(firstscreen,NULL,screen,&1); /
/ colle l´image sur l´écran, NULL car on affiche TOUTE l´image
SDL_Flip(screen); // affiche la prochaine frame
waitkey(); // attends qu´on appuie sur Return ( plus haut)
SDL_ShowCursor(1); // reactive la souris
SDL_Quit(); // quitte SDL
char A[16];
cout<<"Dis moi ton prenom et je te dirais qui tu es"<<endl;
cin > >A;
cout<<"Tu es une personne"<<endl;
int age;
cout<<"Quel est ton age?"<<endl;
cin>>age;
if ( age>=18 && age<70)
{
cout < < " Tu est majeur" < < endl;
}
else if ( age<18)
{
cout < < " Tu est mineur" < < endl;
}
else
{
cout < < " Tu est vieux" < < endl;
}
char C[17];
cout<<"Ou habitez tu?"<<endl;
cin > >C;
cout<<"Moi personellement j´habite quelque part et que fait tu dans la vie?" < <endl;
char D[18];
cin>>D;
cout<<"Moi je suis collegiens"<<endl;
char choix;
cout<<"Aime tu l´imformatique ( O ou N)"<<endl;
cin>>choix;
if(choix ==´O´)
{
cout<<"Tu as raison cette activite est forte interessante"<<endl;
}
else
{
cout<<"Tu as tort cette activite est forte interessante"<<endl;
}
int E,F,G,H;
cout<<"Choisi un nombre entre 0 et 5"<<endl;
cin>>E;
cout<<"Choisi un nombre entre 2 et 7"<<endl;
cin>>F;
cout<<"Nous allons voire maintenant si tu as de la chance"<<endl;
srand(time(NULL));
cout < < " voici un nombre entre 0 et 5 : " < < rand()%6 < <endl;
cout < < " voici un nombre entre 2 et 7 : " < < ( rand()%6)+2 < <endl;
system ( "PAUSE");
return 0;
}
et les erreur sont:
D:\Dev-Cpp\lib\libSDLmain.a(SDL_main.o)(.text+0x35
a) In function `console_main´:
[Linker error] undefined reference to `SDL_main´
D:\Dev-Cpp\lib\libSDLmain.a(SDL_main.o)(.text+0x35
a) ld returned 1 exit status
D:\Dev-Cpp\truc fait perso\SDL et exo\Makefile.win [Build Error] ["SDL] Error 1
Bon bah si quelqu´un arrive à trouver le blem s´il pouvait me le dire se serait sympas
d´avance .
mon vieux tu ne sauras jamais programmer, lorsqu´on a un problème, on teste longtemps toutes les possibilités, on utilise notre logique. Bien sur on recherche auprès d´autre personnes si c´est désespéré ou si c´est du jamais-vu mais bon le plus gros est fait par le programmeur, pas par d´autres personnes.
Cependant pour ton problème, va dans les options du compilateur ( devcpp) et --ENTRE-- le linkage de mingw32 et celui de Sdl ( entre -lmingw32 et -lSDL) rajoute le linkage vers -lSDLmain. Si c´est déjà fait, va dans le repertoire de ton IDE, dans le dossier lib et vérifie que libSDLmain.a s´y trouve bien
@+
Tous ce que tu dit de faire je l´ai déjà fait
, par contre en plus de sa y´a un blem avec Dev c++ c´est en faite je compile mon code, ( celui ou d´autre) et souvent il me dit quand je fait exécuter que le doe source n´as pas était compiler ( alors que je l´ai fait juste avant...) donc si quelqu´un aurait déjà eu ce problèmes avec ce compilateur ( la j´ai encore essayer d´éxécuter cinq ou six fois ne refaisant me^me d´autres projet, sa marche toujours pas....).
inmilinpic, toi quand tu as appris à programmer tu pouvais résoudre tous tes problèmes tout seul ?
As-tu ajouté les fichiers comme c´est expliqué sur le site de JYY ? Les " lib" dans " lib", les " include" dans " include" etc. Une fois que tu as fait ça, tu ouvres un nouveau projet " Console Application", tu vas dans les options du projet puis dans les paramètres et dans " Editeur de liens", tu copies :
-lmingw32 -lSDLmain -lSDL
Ensuite dans le même dossier que ton projet, tu copies SDL.DLL que tu devrais trouver dans le fichier à dézipper que tu as DL pour installer SDL. Normalement ça devrait marcher.
Oui j´ai tous fait de tous, c´est pour sa que je comprend po, autrement vous savez pas pour mon problèmes de compilateur qui me dit que je peut pas exécuter car ce n´est pas compilé alors que j´ai compilé ( enfin voilà
) .
ps: je suis sur d´avoir bien mit les fichiers car le tutos marche pour afficher les images ![]()
[GFA]_fingolfin >
tu as mis :
int main()
SDL ne supporte pas cela : il faut que ton point d´entrée aie la forme fixe suivante :
int main(int argc,char** argv)
meme si tu n´utilises pas argc et argv par la suite
ça devrait résoudre les problemes sur le point d´entrée ![]()
Merci sa marche pour lancer le programme je voit bien l´image, mais par contre le programme s´arrête à l´image ( enfin je peut quitter sa c´est sur, mais je ne voit pas le reste du programme qui est censer être un dialogue).
Donc j´ai essayer de séparer en deuxle programme, c´est à dire j´ai mit pour affichier l´image: int main(int argc,char** argv)
et pour la dialogue: int main ( )
mais sa ne marche pas ( en faite y´a que l´image qui se lance).
ps: autrement apriori le problèmes comme quoi le compilateur me dit que le code n´as pas était compilé, c´est que en faite apriori, tant qu´il reste une erreur le logiciel dit sa.