IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

SDL apparition d'une image


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut SDL apparition d'une image
    salut a tous et a toute !

    j'ai un petit probleme lorsque je veu faire mon apparition d'image.
    je voudrai que mon image apparait progressivement pour cela jutilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(i=255;i>0;i--)
    {
    		SDL_SetAlpha(present, SDL_SRCALPHA, i);
    		SDL_BlitSurface(present,NULL,ecran,&position);
    		SDL_Flip(ecran);
    }
    mais l'image apparait directement je voudrai savoir si il y a une fonctione qui permet d'attendre quelque millisecondes pour voir l'image apparetre peu a peu.

    merci de votre aide a bientôt.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Déjà tu ne devrais pas faire une boucle séparée. Utilise plutôt le temps écoulé pour en déduire un facteur de transparence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Uint32 Start = SDL_GetTicks();
    Uint32 FadeTime = 2000; // faire durer la transition 2 secondes
     
    while (1) // ta boucle principale
    {
        Uint32 Time = SDL_GetTicks();
        if (Time < Start + FadeTime)
        {
            Uint32 Factor = (Time - Start) * 255 / FadeTime;
            SDL_SetAlpha(present, SDL_SRCALPHA, Factor));
        }
     
        SDL_BlitSurface(present, NULL, ecran, &position);
        SDL_Flip(ecran);
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut merci du post
    merci pour ton explication, vu que je suis vraiment débutant je comprend pas encors certaine fonction mais je vais etudier sa puis je te dis si j'ai quelque problèmes de compréhension.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut apres de petites minutes de reflexion
    je vien de comprendre entierement le code merci a toi et merci les mathematique qui m'on beaucoup aider sur ce coup.

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Bien

    N'oublie pas de cliquer sur si tout est OK.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut Disparition d'une image
    je comprend plus ou moin comment fonctione l'appariton d'une image mais je veu que limage disparait alors je vous r'appele le code utiliser pour l'apparition:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    	Uint32 Start = SDL_GetTicks();
    	Uint32 FadeTime = 100000; // faire durer la transition 10 secondes
     
     
    while(1){
     
    		Uint32 Time = SDL_GetTicks();
     
    		if (Time < (Start + FadeTime))
    		{
    			Uint32 Factor = ((Time - Start) * 255) / FadeTime;
    			SDL_SetAlpha(present, SDL_SRCALPHA, Factor);
    		}
     
    			SDL_BlitSurface(present, NULL, ecran, &position);
    			SDL_Flip(ecran);
    	}
    si quelqu'un peut m'expliquer de façon claire comment modifier le code ci-dessus pour provoquer la disparition d'une image sa serai cool merci a toutes les personnes qui participeront à ce post.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut reponse
    je vien de pensser à decrementer la valeur de 255 a chaque passage de la boucle.

    je test et je vous dit si cela a fonctionner.

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Le facteur de transparence va de 0 à 255, pour le faire aller de 255 à 0 il suffit de le retrancher à 255.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_SetAlpha(present, SDL_SRCALPHA, 255 - Factor)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut ne fonctione pas chez moi
    re salut !

    j'ai tester le bout de code que tu ma donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
            Uint32 Start = SDL_GetTicks();
    	Uint32 FadeTime = 100000; // faire durer la transition 10 secondes
     
    	while(1){
     
    		Uint32 Time = SDL_GetTicks();
     
    		if (Time < (Start + FadeTime))
    		{
    			Uint32 Factor = ((Time - Start) * 255) / FadeTime;
    			SDL_SetAlpha(present, SDL_SRCALPHA, 255 - Factor);
    		}
     
    		SDL_BlitSurface(present, NULL, ecran, &position);
    		SDL_Flip(ecran);
    	}
    mais cela ne fonctione pas. alors je me demande si cette dispariton d'image peut etre réalisé.

  10. #10
    Membre confirmé Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Par défaut
    re salut !

    j'ai tester le bout de code que tu ma donne :

    Code :


    Uint32 Start = SDL_GetTicks();
    Uint32 FadeTime = 100000; // faire durer la transition 10 secondes

    while(1){

    Uint32 Time = SDL_GetTicks();

    if (Time < (Start + FadeTime))
    {
    Uint32 Factor = ((Time - Start) * 255) / FadeTime;
    SDL_SetAlpha(present, SDL_SRCALPHA, 255 - Factor);
    }

    SDL_BlitSurface(present, NULL, ecran, &position);
    SDL_Flip(ecran);
    }


    mais cela ne fonctione pas. alors je me demande si cette dispariton d'image peut etre réalisé.
    La méthode que t'a donné Laurent Gomila est la meilleure... Si cela ne marche pas, c'est que tu as mal inséré le code dans ton prog ( tout ce qu'on te donne dépend de ce que tu as déjà fait ).
    Quant a ton doute quant a la réalisation d'un effet d'apparition/disparition, je peux te confirmer que c'est possible : si cela ne l'était pas, personne ne se serait dévoué pour te donner un fragment de code ( en plus j'ais déjà essayé et cela a marché ... )

Discussions similaires

  1. [SDL] rotation d'une image
    Par orzhov dans le forum SDL
    Réponses: 1
    Dernier message: 20/05/2009, 15h13
  2. effect d'apparition sur une image
    Par john123 dans le forum Flex
    Réponses: 1
    Dernier message: 16/02/2009, 10h57
  3. [Source] [SDL] Mirroir d'une image
    Par fearyourself dans le forum Contribuez
    Réponses: 15
    Dernier message: 06/11/2008, 16h50
  4. [FLASH MX2004] Apparition d'une image
    Par Taz_8626 dans le forum Flash
    Réponses: 5
    Dernier message: 14/06/2006, 11h13
  5. Retarder l'apparition d'une image
    Par denn dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/01/2006, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo