Hola
Os escribo porque necesito ayuda con un pequeño juego que estoy haciendo. En el juego tengo un Movieclip con forma de rueda (Frueda) que hago girar con el raton. Este Movieclip contiene a su vez una seri de Movieclips (F1, F2, .... , F8), que quiero que cuando la rueda que los contiene gire, estos giren compensando el movimiento de la rueda. En definitiva, que siempre mantengan su posicion horizontal (el mismo efecto que los vagones de una noria).
Estoy utilizando el codigo siguiente, que lo tengo puesto en MC Frueda. El "on (release)" funciona bien, lo que hace es redondear el giro de la rueda a multiplos de 45º, para que esta no se quede en cualquier posicion, y redondea y coloca los MC que contiene la rueda en posicion horizontal.
Lo que no me funciona es que los Mc de dentro de la rueda giren a medida que giro la rueda (no se si me he explicado bien).
Código:
on (press) {
this.Frrueda.gotoAndStop("2");
var x = _root._xmouse-this._x;
var y = _root._ymouse-this._y;
rot = Math.atan2(y, x)*180/Math.PI;
this.clickrotation = Math.round (rot-this._rotation);
_root.Frueda.F1._rotation = - (rot-this.rotation);
pos = 1;
}
on (release, releaseOutside) {
this.Frrueda.gotoAndStop("1");
this.spinSpeed = this._rotation-this.lastrotation;
giro = (((Math.round ((rot-this.clickrotation)/45)))*45) - (rot-this.clickrotation) ;
this._rotation = Math.round (rot-clickrotation) + giro;
F2._rotation = - (Math.round (rot-clickrotation) + giro);
F3._rotation = - (Math.round (rot-clickrotation) + giro);
F4._rotation = - (Math.round (rot-clickrotation) + giro);
F5._rotation = - (Math.round (rot-clickrotation) + giro);
F6._rotation = - (Math.round (rot-clickrotation) + giro);
F7._rotation = - (Math.round (rot-clickrotation) + giro);
F8._rotation = - (Math.round (rot-clickrotation) + giro);
F1._rotation = - (Math.round (rot-clickrotation) + giro);
if (this.spinSpeed>180) {
this.spinSpeed -= 360;
}
if (this.spinSpeed<(-180)) {
this.spinSpeed += 360;
}
pos = 2;
}
onClipEvent (enterFrame) {
/*if (pos == 2) {
this.spinSpeed *= 0.7;
this._rotation += this.spinSpeed;
}*/
if (pos == 1) {
var x = _root._xmouse-this._x;
var y = _root._ymouse-this._y;
rot = Math.atan2(y, x)*180/Math.PI;
this.lastrotation = this._rotation;
this._rotation = rot-this.clickrotation;
_root.Frueda.F1._rotation = - (rot-this.clikrotation);
}
}
En el codigo que os he puesto estoy intentando el giro solo para el primer Mc del interior de la rueda ( F1 ).
Podeis echarme una mano?
Gracias