Passiamo ora al codice: andremo a scrivere le funzioni init() e rotate():
Listato 17. Creazione scena e rotazione cubo
function init( Void ):Void {
screen = new ClipScreen( this.createEmptyMovieClip('screen', 1), 200, 200 );
var cam:Camera3D = new Camera3D( 800, screen );
cam.setPosition(0,0,-500);
world.addCamera( cam );
var bg:Group = new Group();
world.setRootGroup( bg );
createScene( bg );
// Creiamo gli assi di riferimento
createCoordinateSystem( bg, false, 1 );
// Associamo la funzione rotate alla pressione del pulsante rotateButton
rotateButton.onRelease = rotate;
// Renderizziamo la scena
world.render();
}
function rotate(){
rotation.rot( Number(xStep.text),Number(yStep.text),Number(zStep.text) );
}
All'interno della funzione init()
, per prima cosa creiamo la clipScreen
e il mondo 3D, quindi aggiungiamo gli assi delle coordinate (come riferimento visivo) e facciamo sì che alla pressione del pulsante rotateButton
venga eseguita la funzione rotate()
. Tale funzione si occupa di impostare la rotazione del cubo secondo i valori specificati all'interno dei campi di testo xStep
, yStep
e zStep
.
Nella funzione createScene
ricordiamo che abbiamo già ruotato leggermente il cubo (20 pixel sull'asse X e 30 pixel sull'asse Y).
Per rendere più gradevole l'aspetto del cubo (e per vedere meglio gli effetti della rotazione) potremmo applicare una skin con abilitata l'illuminazione:
Listato 18. Applica una skin e abilita l'illuminazione
var skin:Skin = new MixedSkin( 0xF28F35, 100, 0, 0, 0 );
// Abilitiamo l'illuminazione per la skin
skin.setLightingEnable( true );
// Applichiamo la skin al cubo
cube.setSkin( skin );
Cambiando i valori all'interno dei campi di testo e premendo il pulsante vedremo il cubo cambiare rotazione:
Esempio rotazione cubo
Con questo esempio notiamo come l'oggetto Transform3D
possa essere modificato anche dopo essere stato aggiunto a un altro gruppo.
Notiamo anche che quando premiamo il pulsante "rotateButton", la trasformazione avviene basandosi sulla posizione di default e non su quella attuale, infatti se per esempio premiamo il pulsante lasciando i valori a 0,0,0 ci ritroveremo con il cubo come apparirebbe di default (annullando quindi la rotazione di 20 e 30 gradi eseguita in precedenza nella funzione createScene).
"© Petit Publications 2006" - diritti riservati