Faire disparaitre une image par clic.

darvoiteau - 31 oct. 2012 à 21:01
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 - 2 nov. 2012 à 07:10
Bonjour à tous et à toutes.

Depuis 3jours je cherche dans le net partout dans mon code et autre, mais impossible d'avoir ce que je veut.
1.Ce que je veut.

Je voudrais qu'il y ait un mouton à l'écran et un viseur. Le mouton reste a l'écran pendant environ 3 secondes, puis disparait.Mais si pendant ses trois secondes on a cliquer le mouton avec le viseur, il disparait quand même. Une fois le mouton disparu il revient au bout de 10 sec, et on recommence ce cycle à l'infinie.

2.Ce que j'ai fait.

J'ai mis le mouton a l'écran et il apparait et disparait au bout d'un certain temps grace à un PollEvent. J'ai mis le viseur en guise de souris, et quand on clique il ya un son jouer par FMOD.

3.Ce que je n'arrive pas a faire

Quand le mouton est là, il apparait pendant 3 sec et disparait pendant 10 sec.Si je clique avant les 3 sec il ne se passes rien a part le son.Je n'arrive pas a faire en sorte que le mouton disparaisse au clic.

4.le code source.

Voici ce que j'ai déja fait:


#include
#include
#include
#include
#include

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

SDL_Surface *ecran=NULL, *viseur=NULL, *fond=NULL, *image=NULL;
SDL_Event event;
SDL_Rect positionViseur, positionFond, positionImage, coordonneeMouton, coordonneeClic, longeurMouton, largeurMouton;

int continuer=1, affichage=1,blitmouton= 1;
int tempsActuel=0, tempsPrecedent=0, imageCliquee=0;


FMOD_SYSTEM *system;
FMOD_SOUND *tir;

FMOD_RESULT resultat;

/* Création et initialisation d'un objet système */
FMOD_System_Create(&system);
FMOD_System_Init(system, 1, FMOD_INIT_NORMAL, NULL);

/* Chargement du son et vérification du chargement */
resultat = FMOD_System_CreateSound(system, "pan.wav", FMOD_CREATESAMPLE, 0, &tir);
if (resultat != FMOD_OK)
{
fprintf(stderr, "Impossible de lire pan.wav\n");
exit(EXIT_FAILURE);
}

/* Initialisation de la SDL */
positionImage.x=150;
positionImage.y=150;

SDL_Init(SDL_INIT_VIDEO);
viseur=IMG_Load("viseur.png");
image=IMG_Load("mouton.jpg");
fond=SDL_LoadBMP("fond.bmp");

SDL_ShowCursor(SDL_DISABLE);
ecran=SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("Gestion du son avec FMOD", NULL);

while (continuer)
{
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_QUIT:
continuer=0;
break;
case SDL_MOUSEBUTTONDOWN:
coordonneeClic.x=event.button.x;
coordonneeClic.y=event.button.y;
FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, tir, 0, NULL);
break;
case SDL_MOUSEMOTION:

positionViseur.x=event.motion.x-(viseur->w/2);
positionViseur.y=event.motion.y-(viseur->h/2);
break;


if (coordonneeMouton.x

1 réponse

ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
2 nov. 2012 à 07:10
Il manque tout simplement la capture de la souris

setcapture sur handle de fenêtre pour permettre la reception de:
WM_LBUTTONDOWN ou bouton droit..
0
Rejoignez-nous