> Pratique
PrograZine issue #9 - http://www.citeweb.net/discase/9/FONDU.htm Edito Sommaire Contribution Contacts


Programmation de l'effet de fondu
par Rex - 3, rue du Bois 80300 AVELUY
Débutant DOS QBasic
> fichiers attachés
fondu.bas




    Bonjour!!! Me revoilà dans un nouvel article qui est destiné (en premier lieu) aux débutant(e)s en basic. Ce mois-ci, je me suis mis à la tâche dans l'écrit d'un article concernant un effet fort sympatique et que vous avez (certainemment) déjà vu, sans pour autant savoir en quoi il consistait. Cet effet s'appelle l'effet dit "Fondu", cet effet, on s'en sert aussi bien dans les films(oui, tu sais quand ils font apparaître le nom de l'acteur au-milieu de l'écran) que dans les intros de jeu vidéo. Donc, nous allons voir d'abord la théorie, puis ensuite le côté programmation(en basic, svp...) et ceux grâce à la réalisation d'un petit programme contenant l'effet dont il est question (c'est-à-dire l'effet FONDU).
>D'abord le théorie

    Et bien oui, d'abord la théorie, car il ne sert à rien de savoir programmer cette effet, si, auparavant on ne le comprend pas. Donc, d'abord on va déterminer dont on n'a besoin pour la programmation de ce fameux effet. D'abord, il nous faut initialiser le mode graphique, ensuite, nous allons faire apparaître(par exemple) un texte petit à petit, ce dernier devra bien entendu rester affiché quelques instants(pour qu'on puisse le lire) et enfin on le fera disparaître petit à petit. Donc la couleur du texte qui sera affiché devra dans un premier temps(lors de l'apparition) être de couleur sombre pour aller vers une couleur claire. Et, dans un deuxième temps (lors de la disparition), la couleur du texte devra passer de la couleur claire vers une couleur sombre. Entre l'apparition et la disparition, il nous faudras déterminer un temps de pose pour que l'utilisateur puisse lire le texte avant que ce dernier ne disparaisse. Donc, on sait qu'il nous faut des couleurs qui se suivent (ou plutôt non, des couleurs qui font du plus foncer au plus claire, vise et versa) autant lors de l'apparition que de la disparition. Pour ce faire, nous allons d'abord choisir les couleurs qui seront utiliser lors de l'apparition, puis nous déterminerons le temps de pose du texte avant qu'il ne disparaisse.

     Ci-dessous, le principe théorique mise en application lors de l'exécution de l'effet étudier:
Ici, une couleur foncée au départ qui va peu
à peu s'éclaircir pour enfin apparaître.          
                   ||
                   ||
                  \--/
                   \/
TEXTE(apparition) ---> TEXTE(temps de pose) ---> TEXTE(disparition)
                         /\                  /\
                        /--\                /--\
                         ||                  ||
                         ||                  ||
Ici, le temps de pose pendant lequel le      ||
texte reste affiché(avant sa disparition)    ||
avec la couleur la plus claire.              ||
                                             ||
                                Ici, après le temps de pose, la couleur
                                 claire va peu à peu s'assombrir pour
                                      enfin disparaître.
l
l Note: On peut prendre dans le cas d'une initialisation en mode 12, que la couleur la plus foncée, c'est 0 et que la couleur la plus claire, c'est 15.

     Donc, vous avez pu voir ci-dessus le principe théorique qui sera mise en application lors de l'exécution de votre programme contenant l'effet Fondu. Ceci une fois dit, je vous propose maintenant de passer au chose "sérieuse", c'est-à-dire la pratique ou (l'application de la théorie). Car rien ne vaut la pratique pour comprendre encore mieux les choses.
>Ensuite la Pratique...

     Ci-dessous, vous trouverez le listing détaillé du programme contenant le code de l'effet Fondu. Ce que nous souhaitons faire, c'est un programme qui permet d'afficher le texte suivant: "- La fondu de Rex -" (ça ne fait pas de mal de dire du bien) tout en le faisant dans un premier temps apparaître puis dans un second temps disparaître.
' Initialisation du mode 13h(320*200*256)
SCREEN 13
                    
' En premier lieu, nous avons la boucle CoulApparait% qui va
' calculer de 16 à 30. Cette valeur sert à l'instruction COLOR
' pour faire apparaître petit à petit le texte.
FOR CoulApparait% = 16 TO 30
                     
' L'instruction COLOR à pour valeur CoulApparait% qui va de
' 16 à 30.  
    COLOR CoulApparait%
                     
' Le texte qui va apparaître petit à petit.
    LOCATE 12, 10
    PRINT "- La fondu de Rex -"
                     
' La valeur Temps correspond en fait à l'instruction TIMER.
    Temps = TIMER
                     
' Ci-dessous, on fait une pause de plus de .2 entre chaque couleur.
    DO
    LOOP UNTIL TIMER - Temps > .2
                     
' Une fois que la boucle CoulApparait% à fini de calculer
' de 16 à 30, on sort de la boucle.
NEXT CoulApparait%
                     
' Là, on fait une pause (plus longue) pour que l'utilisateur est
' le temps de lire le texte affiché.
DO              'On se sert toujours de la valeur Temps qui sert
LOOP UNTIL TIMER - Temps > 1 'en fait à "chronométrer" la pause.
                     
' En deuxième lieu, nous avons la boucle CoulDisparait% qui
' va calculer de 30 à 16 par pas de -1. Cette valeur sert 
' (comme celle de la boucle du dessus) à l'instruction COLOR
' pour faire disparaître petit à petit le texte.
FOR CoulDisparait% = 30 TO 16 STEP -1
                     
' Comme au début, l'instruction COLOR prend comme 
' valeur CoulDisparait%
    COLOR CoulDisparait%
                     
' Le texte qui va disparaître petit à petit.
    LOCATE 12, 10
    PRINT "- La fondu de Rex -"
                     
' La valeur Temps correspond (toujours) en fait à 
' l'instruction TIMER.
    Temps = TIMER
                     
' Ci-dessous, on fait une pause(comme tout à l'heure)
' entre chaque couleur.
    DO
    LOOP UNTIL TIMER - Temps > .2
                     
' Là, dès que la boucle à fini de calculer de 30 à 16,
' alors on peut sortir de la boucle CoulDisparait%
NEXT CoulDisparait%
l

    Pour ceux que ça intêrresse, le fichier source au format .bas : LIEN

    Voila, j'espère que l'étude de l'effet Fondu vous as plu, il est toute fois à remarquer que cette portion de code pourra être insérer dans un programme plus complet(par exemple, l'intro d'un jeu). Sur ce, je vous souhaite une bonne programmation et vous dis à Bientôt...
Cet article est la propriété de Rex. La copie et la diffusion sont libres sauf dans un but lucratif sans accord explicite de l'auteur.