Comme le titre l'indique, il s'agit bien ici d'un pseudo Moteur 3D.
Vous trouverez ici trois sources, dont deux de 3D et une étant juste un outil.
1) Disposition d'objets sur une grille 3D :
Deux grilles se dessinent sur le plateau principale. Sur la petite grille en 2D sur laquelle on disposer les objets (aperçu du plateau vu de dessus). Et sur la grande grille en 3D isométrique, les objets se positionnent en fonction (c'est le cas de le dire !) de l'emplacement des objets correspondants sur la petite grille 2D.
Gère le devant-derrière grâce à "swapDepths(profondeur)"
2) Points et Dessin :
C'est un effet de 3D. Le dessin se fait au fur et à mesure (enterFrame) en fonction de points prédéterminés dans un tableau. Une fonction unique :
Dessinner(nom du clip, mode, x, y, z, x_curve, y_curve, z_curve)
nom du clip : indique le nom du clip pour dessinner (createEmptyMovieClip)
mode : comme pour le dessin en 2D (moveTo, lineTo, curveTo)
x, y, z : coordonnées 3D du nouveau point (converties en 2D par la fonction)
x_curve, y_curve, z_curve : de même si le mode est curveTo
3) Enregistrement Coordonnées 2D pour 3D ISO :
Simple outil pour le fichier précédent. Il permet de créer un tableau contenant le coordonnées de votre dessin. Directement réexploitable comme indiqué dans "Points et Dessin".
Source / Exemple :
// arf ! Il y a beaucoup trop de code !!
// voila quelques bribe ... le reste est dans le zip !
function Positionner(Objet, x, y) {
_root[Objet]._x = xG+(x+y)*aG;
_root[Objet]._y = yG+(y-x)*bG;
}
// Particulier à l'isométrique
function Point(x3D, y3D, z3D) {
//X = x+y et Y = y-x+z
x2D = (x3D+y3D)*aG+xG;
y2D = (y3D-x3D)*bG-(TotalCases-z3D)*hG+yG;
//Renvoi sous forme d'un tableau
return ([x2D, y2D]);
}
Conclusion :
Une nouvelle source est prévue dés que je l'aurai finie. L'une permettra de mettre du remplissage dans vos dessins 3D ; et l'autre sera un moteur de déplacement d'une voiture dans un environnement 3D. Si vous avez quelques idées à ce propos, n'hésitez pas à me les donner :-)
Dernière mise à jour : correction d'un bug de profondeur. (Certains objets qui devait se trouver devant passait derrière et vis-versa ; de plus, il arrivait que des objets disparaissent car remplacés par de nouveaux objets)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.