Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Un cubo che ruota

Un primo esempio pratico per vedere Papervision in azione
Un primo esempio pratico per vedere Papervision in azione
Link copiato negli appunti

Come accennato nella lezione precedente, un ambiente 3D è regolato da uno spazio che in papervision3D è denominato scene, l'occhio dell'osservatore chiamato camera e uno schermo in cui riprodurre le immagini in due dimensioni denominato viewport3D che è una novità della versione 2.

Il primo esempio che esaminiamo mostra come ruotare un cubo.

Cominciamo a scrivere il codice. Per prima cosa dobbiamo inizializzare uno Sprite (la nostra Viewport3D) nello stage in cui verrà disegnata la simulazione 3D.

viewport = new Viewport3D(550, 400, false, true);
addChild(viewport);

scena = new Scene3D();
camera = new Camera3D();
renderer = new BasicRenderEngine();

Abbiamo assegnato le dimensioni alla viewport e abbiamo stabilito che non sarà ridimensionabile (terzo parametro) ma che accetterà eventi (quarto parametro).

materiale = new ColorMaterial(0x333333);
solido = new Cube(new MaterialsList({all:materiale}), 300, 200, 150);
scena.addChild(solido);

Qui creiamo un materiale con un colore unico e un cubo - al quale applichiamo il materiale stesso - dove definiamo le proporzioni altezza, larghezza e profondità.

Per aggiungere l'oggetto alla scena usiamo il consueto metodo addChild(). Con lo stesso criterio possiamo creare gruppi di oggetti aggiungendo non più il solido alla scena, ma un solido come figlio di altri solidi. Vedremo più avanti altri esempi a riguardo.

Infine l'aggiunta dell'EventListener permette di ruotare il cubo.

Aggiungiamo la rotazione

addEventListener(Event.ENTER_FRAME, onEnterFrame);

function onEnterFrame(e:Event):void {
  solido.rotationY += 2;
  solido.rotationX += 2;
  renderer.renderScene(scena, camera, viewport);
}

Molto importante l'istruzione renderer.renderScene, che ridisegna la scena sullo stage. Questa deve essere ridisegnata ad ogni modifica altrimenti gli effetti di una rotazione o di uno spostamento non saranno visibili.

Per concludere è importante considerare che per spostare un oggetto nello spazio 3D, e in particolare il nostro cubo, possiamo semplicemente utilizzare le proprietà x,y,z proprio come faremmo se stessimo lavorando con un semplice movieClip.

Possiamo vedere tutto il codice dell'esempio qui

Ti consigliamo anche