Comunidad de diseño web y desarrollo en internet online

ayuda Camara en Papervision

Citar            
MensajeEscrito el 03 Ene 2010 06:54 pm
Hola!!

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, 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);
}
}
}

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Ene 2010 11:14 pm
usa condicionales para limitar los ejes de movimiento....

Código ActionScript :

if(camera.x>240){
  camera.x=240;
}else if(camera.x<100){
  camera.x=100;
}

no probe el código, use números aleatorios en las condicionales, usa los números que necesites, si no te funciona vuelve a postear :P
Hasta Luego!

Por hormy1

Claber

124 de clabLevel



 

chrome
Citar            
MensajeEscrito el 04 Ene 2010 11:42 pm
gracias por responder hormy1

modifique las cifras como crei conveniente pero la camara se vuelve loca

creo que la solucion si es por ahi, pero no estoy segura como exactamente

Por dianita666

Claber

185 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.