begin process at 2012 05 29 22:25:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Probleme sur les timer (SDL)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme sur les timer (SDL)

mercredi 30 décembre 2009 à 19:20:00 | Probleme sur les timer (SDL)

Loynis94

Bonjour,

je viens de creer un petit programme censé reproduire une image qui rebondit de gauche à droite et de haut en bas. Mon programme marche au debut, puis deconne, mais je ne vois pas pourquoi. Pourriez-vous m'aider.

#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>


Uint32 bougerImageDroite(Uint32 intervalle, void *parametre);
Uint32 bougerImageGauche(Uint32 intervalle, void *parametre);
Uint32 bougerImageBas(Uint32 intervalle, void *parametre);
Uint32 bougerImageHaut(Uint32 intervalle, void *parametre);

int main(int argc, char *argv[])
{
SDL_Surface *ecran = NULL, *image = NULL;
SDL_Rect positionImage;
SDL_Event event;
int continuer = 1;
SDL_TimerID timerD;
SDL_TimerID timerG;
SDL_TimerID timerH;
SDL_TimerID timerB;

SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER);

ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("Essai", NULL);

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

positionImage.x = image->w ;
positionImage.y = image->h ;

timerB = SDL_AddTimer(5, bougerImageBas, &positionImage);
timerD = SDL_AddTimer(5, bougerImageDroite, &positionImage);

while (continuer)
{
SDL_PollEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
}

if(positionImage.x + image->w == ecran->w) // aller à gauche
{
SDL_RemoveTimer(timerD);
timerG = SDL_AddTimer(20, bougerImageGauche, &positionImage);
}

if(positionImage.x + image->w == image->w) // aller à droite
{
SDL_RemoveTimer(timerG);
timerD = SDL_AddTimer(20, bougerImageDroite, &positionImage);
}

if(positionImage.y + image->h/2 == image->h) // aller en bas
{
SDL_RemoveTimer(timerH);
timerB = SDL_AddTimer(20, bougerImageBas, &positionImage);
}

if(positionImage.y + image->h == ecran->h ) // aller en haut
{
SDL_RemoveTimer(timerB);
timerH = SDL_AddTimer(20, bougerImageHaut, &positionImage);
}

SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
SDL_BlitSurface(image, NULL, ecran, &positionImage);
SDL_Flip(ecran);
}

SDL_FreeSurface(image);
SDL_Quit();

return EXIT_SUCCESS;
}

Uint32 bougerImageDroite(Uint32 intervalle, void *parametre)
{
SDL_Rect* positionImage = parametre;
positionImage ->x++;
return intervalle;
}

Uint32 bougerImageGauche(Uint32 intervalle, void *parametre)
{
SDL_Rect* positionImage = parametre;
positionImage ->x--;
return intervalle;
}

Uint32 bougerImageHaut(Uint32 intervalle, void *parametre)
{
SDL_Rect* positionImage = parametre;
positionImage ->y--;
return intervalle;
}

Uint32 bougerImageBas(Uint32 intervalle, void *parametre)
{
SDL_Rect* positionImage = parametre;
positionImage ->y++;
return intervalle;
}


Cette discussion est classée dans : image, sdl, intervalle, uint32, positionimage


Répondre à ce message

Sujets en rapport avec ce message

Lib SDL -> probleme d'images [ par zmc ] bonjour, je debute plus ou moins en SDL, et je n'ai pas réussi a afficher un sprites (animé ou non) sur une image de fond. Selon la méthode que j'empl TGALoader +SDL [ par Arnaud16022 ] HI!je voudrais juste savoir si il y a moyen de charger unne image avec le TGA Loader de funto, pour l'afficher a l'écran a l'aide de SDL_CreateRGBSurf [SDL] Alternation d'une image [ par hoxid ] Salut !Bon voila j'ai un probleme avec SDL :je veux par exemple faire un gars qui marche (image "bonome.bmp") et que cette image se change en "bonomeq Problème SDL [ par MATHIS49 ] Bonjour ! Je débute en C++ et en SDL , j'ai donc décortiqué un petit programme fait en SDL qui avait pour l'avantage d'être accessible au débutant : Probleme SDL_image , à l'aide [ par DarkSchen ] Bonjour,mon problème est que je n'arrive pas à configurer correctement SDL_imageProtocole suivi : je travaille sous Dev c++ 4.9.5 avec g++ comme compi SDL et Surface [ par Kangourou_Nomade ] Je voulais savoir si, en SDL, il était préférable de loader une image a partir d'un fichier au fur et a mesure du déroulement du jeu ou s'il vallait m probleme SDL et POO [ par darmoor ] voila je suis encore qu'un débutant dans la matière avec la POO et j'apprend a utiliser SDL j'ai fait un essai en affichant un image et avec unn SDL_ aidé moi svp [ par iliassh ] je veux de l'aide pour que j'ajoute a ce jeux une fonction qui permeté d'affiché des brique qui ce seron bliti quand la balle les touche je veux svp q SDL image et masque [ par Timidouveg ] Bonjour Je poste pour la première fois ici Je développe toutes sortes de petits programmes et aussi un projet de réalité virtuelle en C/C++ avec SDL/O Effacer une image avec SDL en C [ par flofloo ] slt tout le mondevoici mon probleme j'ai realiser un petit prog qui affiche une image a l'appui de la touche "x" et maintenant je voudrais faire le co


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,728 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales