2010-12-23 7 views
0

fand ich ein Beispiel für adding texture to a cubeMehrere Würfel - Papervision3D

Was ich will, ist 3 Würfel in einer Reihe zu haben und sie auch zu platzieren, um weiter an der Rückseite (x-Achse), aber ich weiß wirklich nicht, viel über papervision3d. Ich habe nur die Texturen geändert und das war es. Hier ist der Code:

http://www.kelvinluck.com/assets/papervision3d/cube_tweaks/

package 
{ 
import flash.display.Bitmap; 
import flash.display.BitmapData; 
import flash.display.Sprite; 
import flash.events.Event; 
import flash.events.KeyboardEvent; 
import org.papervision3d.cameras.Camera3D; 
import org.papervision3d.materials.BitmapMaterial; 
import org.papervision3d.materials.BitmapFileMaterial; 
import org.papervision3d.materials.MaterialsList; 
import org.papervision3d.objects.DisplayObject3D; 
import org.papervision3d.scenes.Scene3D; 
import org.papervision3d.objects.Collada; 
import org.papervision3d.core.proto.DisplayObjectContainer3D; 
import org.papervision3d.objects.Cube; 
import org.papervision3d.materials.ColorMaterial; 

public class PapervisionCubeSides extends Sprite 
{ 

    private var container:Sprite; 
    private var scene:Scene3D; 
    private var camera:Camera3D; 
    private var rootNode:DisplayObject3D; 
    private var ml:MaterialsList = new MaterialsList(); 
    private var customcube:Cube; 

    public function PapervisionCubeSides() 
    { 
    init3D(); 
    addEventListener(Event.ENTER_FRAME, Timeline); 
    } 

    private function init3D():void { 
    container = new Sprite(); 
    addChild(container); 
    container.x = stage.stageWidth * .5; 
    container.y = stage.stageHeight * .5; 
    scene = new Scene3D(container); 
    camera = new Camera3D(); 
    camera.zoom = 10; 

    rootNode = scene.addChild(new DisplayObject3D("rootNode")); 

    var ml:MaterialsList = new MaterialsList(); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face1'); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face2'); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face3'); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face4'); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face5'); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face6'); 

    customcube = new Cube(ml, 280, 280, 280, 1, 1, 1); 

    rootNode.addChild(customcube, "myCube01"); 
    } 

    private function Timeline(event:Event):void { 
    var screen:DisplayObject3D = this.scene.getChildByName("rootNode"); 
    var rotationY:Number = -(this.mouseX/this.stage.stageWidth * 275); 
    var rotationX:Number = -(this.mouseY/this.stage.stageHeight * 275); 
    screen.rotationY += (rotationY - screen.rotationY)/12; 
    screen.rotationX += (rotationX - screen.rotationX)/12; 

    this.scene.renderCamera(this.camera); 
    } 
} 
} 

Dank für die Hilfe

+0

btw, x ist horizontal, z Tiefe, können Sie die Kamera ein wenig bewegen kann und/oder eine Dreizack/UCS (http: //papervision3d.googlecode.com/svn/trunk/as3/trunk/docs/org/papervision3d/objects/special/UCS.html). Um die Szene zu umgehen, können Sie zunächst eine Debug-Kamera (http://papervision3d.googlecode.com/svn/trunk/as3/trunk/docs/org/papervision3d/cameras/DebugCamera3D.html) verwenden, die Sie einfach austauschen können später für eine Zielkamera zum Beispiel –

Antwort

1

Sie 3 Würfel die gleiche Art und Weise hinzufügen würden Sie 1 Würfel hinzufügen ehrlich zu sein. Sie können für Schleife eine grundlegende tun und den Iterator verwenden, um die Position zu erhöhen:

package 
{ 
import flash.display.Bitmap; 
import flash.display.BitmapData; 
import flash.display.Sprite; 
import flash.events.Event; 
import flash.events.KeyboardEvent; 
import org.papervision3d.cameras.Camera3D; 
import org.papervision3d.materials.BitmapMaterial; 
import org.papervision3d.materials.BitmapFileMaterial; 
import org.papervision3d.materials.MaterialsList; 
import org.papervision3d.objects.DisplayObject3D; 
import org.papervision3d.scenes.Scene3D; 
import org.papervision3d.objects.Collada; 
import org.papervision3d.core.proto.DisplayObjectContainer3D; 
import org.papervision3d.objects.Cube; 
import org.papervision3d.materials.ColorMaterial; 

public class PapervisionCubeSides extends Sprite 
{ 

    private var container:Sprite; 
    private var scene:Scene3D; 
    private var camera:Camera3D; 
    private var rootNode:DisplayObject3D; 
    private var ml:MaterialsList = new MaterialsList(); 
    private var customcube:Cube; 

    public function PapervisionCubeSides() 
    { 
    init3D(); 
    addEventListener(Event.ENTER_FRAME, Timeline); 
    } 

    private function init3D():void { 
    container = new Sprite(); 
    addChild(container); 
    container.x = stage.stageWidth * .5; 
    container.y = stage.stageHeight * .5; 
    scene = new Scene3D(container); 
    camera = new Camera3D(); 
    camera.zoom = 10; 

    rootNode = scene.addChild(new DisplayObject3D("rootNode")); 

    var ml:MaterialsList = new MaterialsList(); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face1'); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face2'); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face3'); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face4'); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face5'); 
    ml.addMaterial(new BitmapFileMaterial("ski.jpg"), 'face6'); 

    for(var i:int = 0 ; i < 3 ; i++){ 
     customcube = new Cube(ml, 280, 280, 280, 1, 1, 1); 
     customcube.x = (280 + 10) * i 
     rootNode.addChild(customcube, "myCube"+i); 
    } 
    } 

    private function Timeline(event:Event):void { 
    var screen:DisplayObject3D = this.scene.getChildByName("rootNode"); 
    var rotationY:Number = -(this.mouseX/this.stage.stageWidth * 275); 
    var rotationX:Number = -(this.mouseY/this.stage.stageHeight * 275); 
    screen.rotationY += (rotationY - screen.rotationY)/12; 
    screen.rotationX += (rotationX - screen.rotationX)/12; 

    this.scene.renderCamera(this.camera); 
    } 
} 
} 
+0

habe ich es schon getan. Aber danke! – DaTroop

Verwandte Themen