Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Alejandro CabreraH

#1
Buscando por internet he encontrado el siguiente código, funciona a la perfección y tras toquetearlo un poco hace lo que quiero.


var fuerza_repulsiva = 50;
var distancia_minima = 5;

var coordenada_x_final = this._x;
var coordenanda_y_final = this._y;

this.onEnterFrame = function(){
   
   var distancia_x = this._x - _root._xmouse;
   var distancia_y = this._y - _root._ymouse;
   
   var distancia_existente = Math.sqrt(distancia_x * distancia_x + distancia_y * distancia_y);
   
   if(distancia_existente < distancia_minima){
       
      var incremento_x = distancia_x * (distancia_existente + fuerza_repulsiva) / distancia_existente;
      var incremento_y = distancia_y * (distancia_existente + fuerza_repulsiva) / distancia_existente;
       
      coordenada_x_final = this._x + incremento_x;
      coordenada_y_final = this._y + incremento_y;
       
   }
   
   var incremento_x = (coordenada_x_final - this._x) * .25;
   var incremento_y = (coordenada_y_final - this._y) * .25;
   
   this._x = this._x + incremento_x;
   this._y = this._y + incremento_y;
   
};


Cuando me topo con un código así voy analizando línea por línea y cambiando algunos nombres de variables hasta entender que hace en cada momento, pero una parte de este me ha podido.

Citar

Explicación y duda

   1. Primero calculamos la distancia entre el mouse y el objeto en el eje X, posteriormente hacemos lo mismo en el eje Y.

   2. A continuación calculamos la distancia real entre los dos puntos mediante el teorema de Pitágoras usando los dos datos anteriores.

   3. Abrimos el condicional. Si la distancia entre el mouse y el objeto es menor a lo establecido:

            Fijamos la cantidad de píxels que se debe alejar nuestro objeto con operaciones que no logro comprender.

            Fijamos la posición final del objeto tras el desplazamiento. No comprendo la finalidad, ya hacemos esto al final del código.

   4. Volvemos a fijar el incremento para alejar nuestro objeto. ¿Por qué? Si se ejecutara el condicional tendríamos repetida la declaración de las variables "incremento_x" e "incremento_y".

   5. Finalmente le sumamos a la posición inicial la distancia que se debe alejar el objeto para los dos ejes de coordenadas.


No logro comprender practicamente todas las líneas que se ejecutan dentro y después del "if" ¿Alguien me las puede explicar? Por si las moscas cuelgo el código tal cual lo saqué de internet (AVISO: De la manera siguiente no ejecuta lo deseado):


//---Valor que debe alejarse y valor al que permite acercarse

var alejarse:Number = 50;
var cerca:Number = 50;

var newX:Number = this.bola._x;
var newY:Number = this.bola._y;

//---Funcion de movimiento
this.bola.onEnterFrame = function():Void {
   
   var difX:Number = this._x - _root._xmouse;
   var difY:Number = this._y - _root._ymouse;
   
   var hipot:Number = Math.sqrt(difX * difX + difY * difY);
   
   if(hipot < cerca){
       
      var incX:Number = difX * (hipot + alejarse) / hipot;
      var incY:Number = difY * (hipot + alejarse) / hipot;
       
      newX = this._x + incX;
      newY = this._y + incY;
       
   }
   
   var X:Number = (newX - this._x) * .25;
   var Y:Number = (newY - this._y) * .25;
   
   this._x += X;
   this._y += Y;
   
};


Espero que me podáis ayudar, llevo toda la mañana dandole al coco con esta historia. Gracias de antemano por la ayuda, cualquier mínima pista será bien recibida.
#2
Proyecto achDesign'10

Antes de empezar me gustaría agradecer a todos los lectores el interes por mi proyecto, y es que tras un mes publicitándolo en redes sociales he decidido llevarlo a terrenos mas ámplios; el primer paso, este post. Lo que traigo es una página web dedicada al diseño gráfico, el desarrollo web y todo tema similar. Una manera de darme a conocer y algo que me ha costado mucho trabajo, todo ello para lograr uno de mis sueños.

Continúo dejando el enlace al vídeo promocional de mi proyecto, cualquier duda, sugerencia o crítica referente al vídeo será bien recibida.

[youtube=425,350]http://www.youtube.com/watch?v=6uqH9_jjhxk[/youtube]

Turn on your Speakers!!
Adobe AfterEffects CS4 + Adobe Photoshop CS4 + Adobe Audition 3.0