Necesito ayuda para limitar la interaccion de la camara, el rango de movimiento, busco algo similar a:
http://www.sointeractive.pl/
en mi proyecto al mover el mouse de izquierda a derecha, el objeto da muchas vueltas, quiero limitar ese movimiento
este es mi codigo:
diana escribió:
package
{
import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
public class piso extends Sprite
{
private var viewport:Viewport3D;
private var renderer:BasicRenderEngine;
private var scene:Scene3D;
private var camera:Camera3D;
public function piso()
{
Init3D();
}
private function Init3D():void
{
viewport = new Viewport3D(1000, 600, true, true);
addChild(viewport);
renderer = new BasicRenderEngine;
scene = new Scene3D;
camera = new Camera3D;
camera.focus = 25;
camera.zoom = 20;
camera.z = -500;
camera.y = 300;
camera.x = 0;
CreateObjects();
addEventListener(Event.ENTER_FRAME, Loop3D);
}
private function CreateObjects():void
{
var mat:BitmapFileMaterial = new BitmapFileMaterial("carton.jpg");
mat.doubleSided = true;
var plane:Plane = new Plane(mat, 500, 500, 8,
plane.rotationX = -90;
scene.addChild(plane);
camera.target = plane;
}
private function Loop3D(event:Event):void
{
var radio:uint = 500;
var angulo:Number = mouseX + (stage.stageWidth / 2);
camera.x = radio * Math.cos(angulo / 100);
camera.z = radio * Math.sin(angulo / 100);
camera.y = - mouseY + (stage.stageHeight / 2) + 100;
Render();
}
private function Render():void
{
renderer.renderScene(scene, camera, viewport);
}
}
}
