Scrivo questo post per aiutare magari qualche povero cristo che come me si ritrova a leggere le guida presente sul sito, e si ritrova con certi problemi, magari un po troppo difficili da risolvere per uno che sta iniziando ora con sandy 3d.
Problema riscontrato nella lezione (esempio pratico) pagina 15,16
L'obiettivo del esempio è far ruotare un cubo...
il codice completo totale da scrivere è il seguente:
Un ultima cosa molto importante!!! Le caselle di testo che avranno come istanza: xStep;yStep;zStep createle come testo di input, e non come testo dinamico, come dice la guida...codice:import sandy.core.light.*; import sandy.core.data.*; import sandy.core.group.*; import sandy.primitive.*; import sandy.view.*; import sandy.core.*; import sandy.skin.*; import sandy.util.*; import sandy.core.transform.*; import sandy.events.*; var world:World3D = World3D.getInstance(); // Azione principale del mondo 3D //manca nella guida, senza la variabile non si può creare il mondo... :XD var rotation:Transform3D = new Transform3D(); // questa riga la trovate nella posizione sbagliata, infatti se provate con la variabile rotation posizionata in createscene, potete impegnarvi quanto volete a scrivere valori e premere sul pulsantino rotate ma non avrete alcun cambiamento. var l:Light3D = new Light3D (new Vector (100, 0, 0), 500); //manca nella guida PER APPLCIARE LE LUCI World3D.getInstance ().setLight (l); //manca nella guida PER APPLCIARE LE LUCI function createScene( bg:Group ):Void { var cube:Object3D = new Box( 50, 50, 50, 'quad' ); var skin:Skin = new MixedSkin( 0xF28F35, 80, 0, 100, 1 ); skin.setLightingEnable( true ); // Abilitiamo l'illuminazione per la skin cube.setSkin( skin ); var tg:TransformGroup = new TransformGroup(); rotation.rot(20,30,0); tg.setTransform( rotation ); tg.addChild( cube ); bg.addChild( tg ); } function init( Void ):Void { screen = new ClipScreen( this.createEmptyMovieClip('screen', 1), 200, 200 ); var cam:Camera3D = new Camera3D( 600, 600 ); 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) ); } init();

Rispondi quotando