Comunidad de diseño web y desarrollo en internet online

Girar Objeto solo desde el mismo eje

Citar            
MensajeEscrito el 25 Abr 2014 07:19 pm
saludos, quiero simular la rueda de un carro, con as3 estuve intendo de todas las formas ;
usando este codigo:

Código Javascript :

   Rueda.x =Math.round(rx+rr*Math.cos(rspeed));
      Rueda.y = Math.round(ry+rr*Math.sin(rspeed));
Rueda.rotation+=1;


pero la rueda gira desde la esquina izquierda superior, al girar se mueve toda la rueda, cuando lo que deberia hacer es solo girar desde el centro, si que este se mueva, me parece que deberia girar desde el centro, pero no se como,

Por jearca

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Abr 2014 12:06 am
No entiendo por qué desplazas la rueda, solamente rotala, y desplaza un movieclip que la contenga, es mucho mas sencillo que recalcular con trigonometría un nuevo centro (pivot) para la rotación, aunque puede hacerse.
Asi que lo principal es tener el pivot en el centro de la rueda, si lo haces con el Flash IDE, metete dentro del objeto Ruedo y apreta Ctrl+K (Cmd+K), y eso te abre el Align panel... selecciona los gráficos en la linea de tiempo, agrupalos (Ctrl+G), y juga con el panel de alineacion hasta que quede centrado.

Si lo haces con codigo (solo a modo de demo):

Código ActionScript :

// DEMO 1 - usando graphics para hacer el test.
var radioRueda:Number = 20 ; // es el radio, el diametro seria 40. (rueda.width)
var rueda:Sprite = new Sprite();
rueda.graphics.beginFill(0xFF0000) ;
rueda.graphics.drawCricle( 0,0, radioRueda )
rueda.graphics.endFill();
rueda.rotation += rspeed; // en grados, no radianes.

// DEMO 2 - usando tu objeto (ya sea de libreria, bitmaps, o lo que tengas).
// toma las coordenadas internas del objeto rueda (no se donde tenes los pivots)
var bounds:Rectangle = rueda.getBounds(rueda);
var ruedaContainer:Sprite = new Sprite();
ruedaContainer.addChild(rueda);
// con esto centras la rueda, no importa el punto de registro de la misma.
rueda.x = -bounds.x - bounds.width / 2 ;
rueda.y = -bounds.y - bounds.height / 2 ;
// trabaja la rotacion y traslación con ruedaContainer ahora.
ruedaContainer.rotation += rspeed ;

var auto:Sprite = new Sprite();
// agrega todos los graficos que quieras... inclusive las ruedas y posiciona todo.
auto.x += velocidadAuto ;


No se si mal entendí tu pregunta.
Cualquier duda, chifla.

Por rodrigolopezpeker

61 de clabLevel



 

chrome

 

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