RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Problème de code

Forum : C
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ C

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
77Arthur77
Nouveau membre
Inscrit : 21/05/2007
Messages : 6
Message
#134327
Posté le 22/05/07 à 18:39
Mon code ne marche pas, mon IDE me met:
"Project : SDL Application
Compiler : GNU GCC Compiler (called directly)
Directory : D:\Documents and Settings\LORMEAU.SN116721270315\Bureau\projet\sdl\image\
--------------------------------------------------------------------------------
Checking for existence: testimgae.exe
Executing: "D:\Documents and Settings\LORMEAU.SN116721270315\Bureau\projet\sdl\image\testimgae.exe" (in .)
Process terminated with status 1 (0 minutes, 3 seconds)
0 errors, 0 warnings

"
après que windows m'ait mis le célèbre méssage d'érreur

testimgae.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru.

Voici mon code:
"
#include "main.h"


int main(int argc, char *argv[])

{
SDL_Event event;//évènements
SDL_Surface *ecran = NULL, *imageDeFond=NULL, *zozor=NULL;//surfaces
SDL_Rect positionFond, positionZozor, positionZozor2, positionZozor3;
SDL_Rect TableauPositionZozor[3];
int continuer = 1;

TableauPositionZozor[0]=positionZozor;
TableauPositionZozor[1]=positionZozor2;
TableauPositionZozor[2]=positionZozor3;

positionFond.x = 0;
positionFond.y = 0;
positionZozor.x = ecran->w / 2 - zozor->w / 2;
positionZozor.y = ecran->h / 2 - zozor->h / 2;
positionZozor2.x=ecran->w / 2 - zozor->w / 2+20;
positionZozor2.y=ecran->h / 2 - zozor->h / 2+20;
positionZozor3.x=ecran->w / 2 - zozor->w / 2+40;
positionZozor3.y=ecran->h / 2 - zozor->h / 2+40;

if (SDL_Init(SDL_INIT_VIDEO) == -1)//ERREUR
{
fprintf(stderr, "Erreur d'initialisation de la SDL : %s\n", SDL_GetError());
exit(EXIT_FAILURE);
}
SDL_WM_SetCaption("Programme principale et: deplacer zozor!", NULL);
SDL_WM_SetIcon(IMG_Load("sdl_icone.bmp"), NULL);

ecran=SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE| SDL_DOUBLEBUF); //Pour changé la grandeur de la fenêtre.
if (ecran == NULL)//ERREUR
{
fprintf(stderr, "Impossible de charger le mode vidéo : %s\nq", SDL_GetError());
exit(EXIT_FAILURE);
}
//base terminé de l'écran. Près à passé au chose serieuse.




imageDeFond = IMG_Load("lac_en_montagne.bmp");
SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);

zozor = SDL_LoadBMP("zozor.bmp");
SDL_SetColorKey(zozor, SDL_SRCCOLORKEY, SDL_MapRGB(zozor->format, 0, 0, 255));


SDL_BlitSurface(zozor, NULL, ecran, &TableauPositionZozor[0]);
SDL_BlitSurface(zozor, NULL, ecran, &TableauPositionZozor[1]);
SDL_BlitSurface(zozor, NULL, ecran, &TableauPositionZozor[2]);




while (continuer) /* TANT QUE la variable ne vaut pas 0 */
{
SDL_WaitEvent(&event); /* On attend un évènement qu'on récupère dans event */
switch(event.type) /* On teste le type d'évènement */
{
case SDL_QUIT: /* Si c'est un évènement QUITTER */
continuer = 0; /* On met le booléen à 0, donc la boucle va s'arrêter */
break;
case SDL_KEYDOWN: /* Si appui d'une touche */
switch (event.key.keysym.sym)
{
case SDLK_ESCAPE:
continuer=0;
break;

}
break;

case SDL_MOUSEBUTTONUP: /* Clic de la souris */
if (event.button.button == SDL_BUTTON_RIGHT) /* On arrête le programme si on a fait un clic droit */
continuer = 0;
break;

case SDL_MOUSEMOTION:
positionZozor.x = event.motion.x ;/* On change les coordonnées de Zozor */
positionZozor.y = event.motion.y;
break;

}





SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));

SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);
SDL_BlitSurface(zozor, NULL, ecran, &TableauPositionZozor[0]);
SDL_BlitSurface(zozor, NULL, ecran, &TableauPositionZozor[1]);
SDL_BlitSurface(zozor, NULL, ecran, &TableauPositionZozor[2]);


SDL_Flip(ecran);



}




//fin obligatoire. NE PAS TOUCHER.
SDL_FreeSurface(imageDeFond);
SDL_FreeSurface(zozor);
SDL_Quit();

return EXIT_SUCCESS;
}


"
et le header
"
#ifndef DEF_NOMDUFICHIER
#define DEF_NOMDUFICHIER

#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#endif
"
Merci de vos future réponse

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

rainbow
Membre du club
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 932
Message
#134331
Posté le 22/05/07 à 19:32
je n'ai pas tout regardé dans le détail mais est-ce normal ?

TableauPositionZozor[0]=positionZozor; TableauPositionZozor[1]=positionZozor2; TableauPositionZozor[2]=positionZozor3; positionFond.x = 0; positionFond.y = 0; positionZozor.x = ecran->w / 2 - zozor->w / 2; positionZozor.y = ecran->h / 2 - zozor->h / 2; positionZozor2.x=ecran->w / 2 - zozor->w / 2+20; positionZozor2.y=ecran->h / 2 - zozor->h / 2+20; positionZozor3.x=ecran->w / 2 - zozor->w / 2+40; positionZozor3.y=ecran->h / 2 - zozor->h / 2+40;


Au moment ou tu initialises ton tableau de position pour ton "zozor", positionzozor, positionzozor2 et positionzozor3 n'ont pas été initialisé (c'est fait quelques lignes plus bas Smiley)
Essais de mettre comme ceci :

positionFond.x = 0; positionFond.y = 0; positionZozor.x = ecran->w / 2 - zozor->w / 2; positionZozor.y = ecran->h / 2 - zozor->h / 2; positionZozor2.x=ecran->w / 2 - zozor->w / 2+20; positionZozor2.y=ecran->h / 2 - zozor->h / 2+20; positionZozor3.x=ecran->w / 2 - zozor->w / 2+40; positionZozor3.y=ecran->h / 2 - zozor->h / 2+40; TableauPositionZozor[0]=positionZozor; TableauPositionZozor[1]=positionZozor2; TableauPositionZozor[2]=positionZozor3;


Sinon, les causes des erreurs dans ce genre sont souvent aussi des problèmes au chargement de l'image donc peut-être de ce côté Smiley

ciao

rainbow
__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 


    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.