- Actualité
- Le streaming de vos animations
- Le jeu de pousse pousse
- Director 8 est là!

- Xtras
- Les Xchoses
- Mui Xtra - fileIO

- 3D quadée (D7)
- La 3ème dimension
- Modélisation Lingo
- Perspective
- Faces cachées

- Toutes les archives Lingo

- Best of
- Les behaviors
- Les Quads
- WindowType (D6)
- Le Casse-brique

- EasyDialog Xtra Download page


 

Zoom sur Director 

 

Déplacer donc la loupe au dessus du pingouin pour... voir !

Créer un effet de projecteur lumineux sur une scène obscure, une loupe ou un microscope... les applications sont nombreuses, le procédé est déroutant et pourtant simple. Yazo.net explique.

Tout repose ici sur le mode d'encre masque qui, appliqué à un acteur bitmap permet de ne rendre visible qu'une partie de celui-ci.

Pour déterminer la ou les zones de l'acteur qui doivent seules apparaître sur la scène, on lui associe DANS LA DISTRIBUTION un masque 1 bit (noir et blanc) créé dans la fenêtre dessin de Director. Dans notre cas, le masque est un rond de la taille d'une pièce de monnaie. Ce nouvel acteur DOIT figurer dans la distribution à droite du bitmap associé, Il ne sera à aucun moment utilisé sur la scène :

 

On place le pingouin sur la scène et on lui applique l'encre masque. Le pingouin n'apparaîtra qu'au travers une forme ronde, celle-là même que le masque définit. Les autres zones de l'images sont transparentes.

On profite alors de cette transparence pour placer une autre images floue du pingouin sous la première (sur une piste plus haut-placée du scénario). Le résultat : on donne l'impression d'une image floue dont une zone réduite a fait l'objet d'une mise au point. Un acteur supplémentaire, la loupe ici, parfait le résultat.

L'effet est intéressant mais il convient maintenant de l'animer !
Le "trou" qui laisse voir l'image nette du pingouin doit pouvoir bouger en même temps que la loupe. Seulement voilà : le "trou" est définit par un acteur qui n'est pas utilisé sur la scène ! Comment allons nous pouvoir redéfinir la zone visible de l'image en mode masque, si nous ne pouvons déplacer l'acteur 1 bit qui sert de masque?

L'astuce nous est révélée dès lors que l'on observe comment Director utilise l'acteur 1 bit pour" percer" l'image en mode masque. Director aligne tout simplement les centres de ces deux acteurs c'est-à-dire que le "trou", la zone visible est par défaut exactement situé au centre de l'image transparente.

On ne peut pas déplacer un acteur qui n'est pas sur la scène mais on peut déplacer le centre ou point d'alignement d'un acteur. Le masque peut voir son centre redéfini or c'est ce centre que Director aligne sur l'image associée pour la rendre partiellement transparente. La propriété regPoint of member va nous permettre de déplacer la zone visible :

 

Notre script n'occupera qu'un seul "frame" ou tableau :

on exitFrame
go to the frame
end

on mouseDown
-- on mesure la distance qui sépare le centre
-- de la loupe (sprite 3 ici) de la souris pour
-- éviter un "saut"

set DIFFERENCEh to the mouseH - the locH of sprite 3
set DIFFERENCEv to the mouseV - the locV of sprite 3

-- on note la position du regPoint (centre de gravité)
-- de l'acteur masque 1 bit ( ici un cercle de 80 pixels
-- de diamètre

set CENTREh to 40
set CENTREv to 40


-- il s'agit maintenant de déplacer la loupe
-- et aussi le regPoint de l'acteur masque
-- de manière correspondante

repeat while the stilldown

set the loc of sprite 3 to point( the mouseH-DIFFERENCEh, the mouseV-DIFFERENCEv)

-- voilà pour le glisser de la loupe
-- Sans arrêt on note les valeurs de son déplacement
-- en comparant sa position nouvelle à sa position
-- d'origine (ici 122, 148)

set DEPLACEMENTh to (the locH of sprite 3) - 122
set DEPLACEMENTv to (the locV of sprite 3) - 148

-- Le point d'alignement du masque 1 bit ( ici acteur 2) doit
-- être déplacé depuis son centre de façon équivalente

set H to CENTREh - DEPLACEMENTh
set V to CENTREv - DEPLACEMENTv
set the regPoint of member 2 to point (H,V)
updatestage

end repeat

end

 

 

< Sommaire