Version Française English Version [ Scripts Lingo 3D pour Macromedia Director ]  

Last Updates Last Updates
 
Xtras Xtras
o
o
o
o
o
3D-UDI
BinFileIO
Joystick
SetMouseLoc
PointInside...
 
Shockwave Demo Shockwave
 o
o
o
o
Jeu de la Vie
Arbre
The Legend of Zelda
Zelda Breakout
 
3D Lingo Lingo 3D
 o
o
o
o
Model Highlighter
Text On Screen
Text To Texture
Animated Texture
 
3D Lingo Lingo
 o


Save an image to disk
 

Lingo Parent Script Model Highlighter

Voir la démo Shockwave

Télécharger le code source

Ce script parent permet de mettre en surbrillance le modèle sous le curseur en changeant sa luminosité. Il peut par exemple être utilisé pour créer des effets de "rollover" dans un monde 3D.

Pour l'utiliser, créez d'abord une nouvelle instance de cHighlightModels en lui donnant un acteur 3D en paramètre:

monde3D = member("monde3D")
HLInstance = script("cHighlightModels").new(monde3D)

Ensuite indiquez à l'instance créée les modèles qu'elle doit prendre en compte (c'est-à-dire, quels modèles pourront être mis en surbrillance).

HLInstance.affectModel(monde3D.model(1))
HLInstance.affectModel(monde3D.model(3)) -- etc.

Si nécessaire, vous pouvez également enlever un modèle en utilisant cette fonction :

HLInstance.excludeModel(monde3D.model(3))

Enfin, pour mettre à jour les modèles et pour faire traitement quelconque sur le modèle en surbrillance il faut utiliser la fonction update() (voir le code source pour le détail de cette fonction) :

-- A rajouter par exemple dans un évenement "enterFrame":
modeleEnSurbrillance = HLInstance.update(the mouseLoc)
put modeleEnSurbrillance.name && "est sélectionné!"


Lingo Parent Script Text On Screen

Voir la démo Shockwave

Télécharger le code source

TextOnScreen permet d'afficher du texte dans un acteur 3D. Pour l'utiliser, copiez tout d'abord la classe "cTextOnScreen" et "cTextToTexture" dans votre animation. Créez ensuite une nouvelle instance de "cTextOnScreen" en passant un sprite 3D et un acteur texte en paramètre :

textOnScreen = script("cTextOnScreen").new(member("world"), member("text"))

Ensuite pour ajouter du texte vous pouvez utiliser les deux fonctions suivantes :

textOnScreen.write("du texte") -- ajoute simplement "du texte"
textOnScreen.writeln("encore du texte") -- ajoute "encore du texte" et passe à la ligne

Pour mettre à jour le texte à l'écran, appelez la fonction :

textOnScreen.update()

Vous pouvez par exemple l'appeler à chaque frame ou uniquement après chaque mise-à-jour du texte.

La classe "cTextOnScreen" dispose également de quelques fonctions supplémentaires pour, entre autres, mettre un fond transparent ou pas :

textOnScreen.transparentBackground(FALSE) -- TRUE par défaut

changer la couleur du fond :

textOnScreen.setBackgroundColor(rgb(255,0,0)) -- fond rouge

changer la position du texte sur l'écran :

textOnScreen.setPosition(point(10,10)) -- déplace le texte à la position 10,10

pour changer l'échelle du texte :

textOnScreen.setScale(2) -- double la taille du texte

et quelques autres fonctions moins importantes (voir le code source pour plus de détails !).


Lingo Parent Script Text To Texture

Voir la démo Shockwave

Télécharger le code source

TextToTexture permet de convertir un acteur texte en texture. Cette classe a en fait un fonctionnement quasi-identique à textOnScreen; ainsi pour créer l'instance, pour ajouter du texte et pour mettre à jour la texture, utilisez les fonctions suivantes :

textToTexture = script("cTextToTexture").new(member("world"), member("text")
textToTexture.write("du texte")
textToTexture.writeln("du texte avec retour chariot")
textToTexture.update()

Pour obtenir une référence à la texture ainsi créée, utilisez la fonction getTexture(). Ce qui donnera par exemple :

member("world").model("box").shader.texture = textToTexture.getTexture()


Lingo Parent Script Animated Texture

Télécharger le code source

Voir la démo Shockwave

Ce script permet de créer une texture animée à partir d'une séquence d'images numérotées. Pour l'utiliser, tout d'abord il faut créer une nouvelle instance de "cAnimatedTexture". Le constructeur prend quatre paramètres en entrée : un acteur 3D, le nom des images sous la forme "nomImage ##" (ou "##" remplace le numéro des images), le numéro de la première frame et le numéro de la dernière frame. Par exemple pour la séquence d'images qui va de "ma vidéo 001" à "ma vidéo 150", on aura :

textureAnimee = script("cAnimatedTexture", member("Monde3D"), "ma vidéo ###", 1, 150) -- le script remplacera les ### par les chiffres 001 à 150

Par défaut, le nombre de frames par seconde est le même que celui de la projection. Mais il est possible de le changer avec :

textureAnimee.setFrameRate(25) -- (pour 25 images / seconde)

Finalement, pour appliquer la texture à un objet ou à un "overlay", il suffit d'appeler getTexture(). Cette fonction retourne une des textures (frames) de l'animation en prenant en compte le temps écoulé et la vitesse de l'animation. Elle peut par exemple être appelée dans un évènement enterFrame ou exitFrame :

on exitFrame me
   -- applique l'animation à un modèle :
   monModèle.shader.texture = textureAnimee.getTexture()
   -- applique l'animation à un "overlay" :
   maCamera.overlay[1].source = textureAnimee.getTexture()
end exitFrame

Lors de l'appel de getTexture(), il est également possible de spécifier un décallage. Cela permet par exemple d'avoir plusieurs modèles avec la même animation mais sans synchronisation :

-- Applique la même texture aux deux monstres mais avec un décallage
-- de 10 frames pour le deuxième pour qu'ils ne paraissent pas identiques :
monMonstre1.shader.texture = textureAnimee.getTexture()
monMonstre2.shader.texture = textureAnimee.getTexture(10)


23/05/2003 - counter