|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
3D TEMPS REEL EN AS2
Information sur la source
Description
Voici un exemple de 3D temps reel tres simple, qui utilise ma class matrix3d. Vous pouvez creer tres simplement des lignes, des polygones et des courbes en 3D.
Source
- // definition du centre de la scene
- var pos:Object = new Object();
- pos.x = 500;
- pos.y = 300;
- //
- // definition de la class matricielle
- var m3d:matrix3d = new matrix3d();
- //
- // On dessine notre figure via l'API de la class matrix3d
- // -> on dessine un polygone
- // la fonction registerPolygon() prend en parametre un array de point pouvant contenir autant de points que vous voulez.
- m3d.registerPolygon(
- new Array(
- m3d.registerPoint(200,200,-200),
- m3d.registerPoint(200,-200,-200),
- m3d.registerPoint(-200,-200,-200),
- m3d.registerPoint(-200,200,-200)
- )
- );
- // un autre...
- m3d.registerPolygon(
- new Array(
- m3d.registerPoint(200,200,200),
- m3d.registerPoint(200,-200,200),
- m3d.registerPoint(-200,-200,200),
- m3d.registerPoint(-200,200,200)
- )
- );
- // on dessine 4 courbes:
- m3d.registerCurve(
- m3d.registerPoint(200,200,200),
- m3d.registerPoint(200,-200,200),
- m3d.registerPoint(200,-200,-200)
- );
- m3d.registerCurve(
- m3d.registerPoint(200,200,200),
- m3d.registerPoint(200,200,-200),
- m3d.registerPoint(200,-200,-200)
- );
- m3d.registerCurve(
- m3d.registerPoint(200,200,-200),
- m3d.registerPoint(200,-200,-200),
- m3d.registerPoint(200,-200,200)
- );
- m3d.registerCurve(
- m3d.registerPoint(200,200,-200),
- m3d.registerPoint(200,200,200),
- m3d.registerPoint(200,-200,200)
- );
- // on dessines qques lignes pour terminer la figurer:
- m3d.registerLine(
- m3d.registerPoint(-200,200,-150),
- m3d.registerPoint(-200,200,-200)
- );
- m3d.registerLine(
- m3d.registerPoint(-200,-200,-150),
- m3d.registerPoint(-200,-200,-200)
- );
- m3d.registerLine(
- m3d.registerPoint(-200,-200,-150),
- m3d.registerPoint(-200,200,-150)
- );
- m3d.registerLine(
- m3d.registerPoint(-200,-200,-150),
- m3d.registerPoint(200,-200,200)
- );
- m3d.registerLine(
- m3d.registerPoint(-200,200,-150),
- m3d.registerPoint(200,200,200)
- );
- //
- // on update la scene, via la fonction créée en bas de cette page de script.
- m3d.rotate_y(-0.5);
- m3d.rotate_x(-0.5);
- update();
- //
- // Cette partie du code sert à effectuer des rotation
- // de scene via le pavé directionnel du clavier.
- var itv = setInterval(function () {
- if (Key.isDown(Key.LEFT)) {
- m3d.rotate_y(-0.1);
- update();
- }
- if (Key.isDown(Key.RIGHT)) {
- m3d.rotate_y(0.1);
- update();
- }
- if (Key.isDown(Key.UP)) {
- m3d.rotate_x(0.1);
- update();
- }
- if (Key.isDown(Key.DOWN)) {
- m3d.rotate_x(-0.1);
- update();
- }
- }, 50);
- //
- // Cette fonction efface la scene et la redessine dans sa nouvelle configuration.
- function update() {
- _root.clear();
- m3d.drawMatrix(_root, pos, {lineStyle:{thickness:1, color:0x000000, alpha:100}});
- }
- //
// definition du centre de la scene
var pos:Object = new Object();
pos.x = 500;
pos.y = 300;
//
// definition de la class matricielle
var m3d:matrix3d = new matrix3d();
//
// On dessine notre figure via l'API de la class matrix3d
// -> on dessine un polygone
// la fonction registerPolygon() prend en parametre un array de point pouvant contenir autant de points que vous voulez.
m3d.registerPolygon(
new Array(
m3d.registerPoint(200,200,-200),
m3d.registerPoint(200,-200,-200),
m3d.registerPoint(-200,-200,-200),
m3d.registerPoint(-200,200,-200)
)
);
// un autre...
m3d.registerPolygon(
new Array(
m3d.registerPoint(200,200,200),
m3d.registerPoint(200,-200,200),
m3d.registerPoint(-200,-200,200),
m3d.registerPoint(-200,200,200)
)
);
// on dessine 4 courbes:
m3d.registerCurve(
m3d.registerPoint(200,200,200),
m3d.registerPoint(200,-200,200),
m3d.registerPoint(200,-200,-200)
);
m3d.registerCurve(
m3d.registerPoint(200,200,200),
m3d.registerPoint(200,200,-200),
m3d.registerPoint(200,-200,-200)
);
m3d.registerCurve(
m3d.registerPoint(200,200,-200),
m3d.registerPoint(200,-200,-200),
m3d.registerPoint(200,-200,200)
);
m3d.registerCurve(
m3d.registerPoint(200,200,-200),
m3d.registerPoint(200,200,200),
m3d.registerPoint(200,-200,200)
);
// on dessines qques lignes pour terminer la figurer:
m3d.registerLine(
m3d.registerPoint(-200,200,-150),
m3d.registerPoint(-200,200,-200)
);
m3d.registerLine(
m3d.registerPoint(-200,-200,-150),
m3d.registerPoint(-200,-200,-200)
);
m3d.registerLine(
m3d.registerPoint(-200,-200,-150),
m3d.registerPoint(-200,200,-150)
);
m3d.registerLine(
m3d.registerPoint(-200,-200,-150),
m3d.registerPoint(200,-200,200)
);
m3d.registerLine(
m3d.registerPoint(-200,200,-150),
m3d.registerPoint(200,200,200)
);
//
// on update la scene, via la fonction créée en bas de cette page de script.
m3d.rotate_y(-0.5);
m3d.rotate_x(-0.5);
update();
//
// Cette partie du code sert à effectuer des rotation
// de scene via le pavé directionnel du clavier.
var itv = setInterval(function () {
if (Key.isDown(Key.LEFT)) {
m3d.rotate_y(-0.1);
update();
}
if (Key.isDown(Key.RIGHT)) {
m3d.rotate_y(0.1);
update();
}
if (Key.isDown(Key.UP)) {
m3d.rotate_x(0.1);
update();
}
if (Key.isDown(Key.DOWN)) {
m3d.rotate_x(-0.1);
update();
}
}, 50);
//
// Cette fonction efface la scene et la redessine dans sa nouvelle configuration.
function update() {
_root.clear();
m3d.drawMatrix(_root, pos, {lineStyle:{thickness:1, color:0x000000, alpha:100}});
}
//
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Comparez les prix Nouvelle version
|