Advertisement
Guest User

pipis.js

a guest
Sep 4th, 2012
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     var ramas = new Array(); // Array de objetos donde se va a posar el pájaro
  2.     var estadoPajaro = ""; // Usamos esto para mostrar el estado del pájaro
  3.     var selectoresRamas = "div, img, p"; // Selectores de los objetos donde se posará el pájaro
  4.  
  5.     $(document).ready(function() { listar_ramas(), loop() }); // Primero guardamos los objetos y luego llamamos al loop
  6.    
  7.     function loop() // Loop del script
  8.     {
  9.         mover(ramas[rand(0,ramas.length)]); // Movemos hacia alguno de los objetos del array
  10.  
  11.         switch(estadoPajaro)
  12.         {
  13.         case "acicalandose":
  14.             $("#pajaro").css("background-image", "url('acicalandose.png')");
  15.             break;
  16.         case "movder":
  17.             $("#pajaro").css("background-image", "url('movder.png')");
  18.             break;
  19.         case "movizq":
  20.             $("#pajaro").css("background-image", "url('movizq.png')");
  21.             break;
  22.         }
  23.  
  24.  
  25.         window.setTimeout(function() { loop() }, rand(8000, 12000));
  26.     }
  27.  
  28.     function listar_ramas() // Guardamos todos los objetos en un array
  29.     {
  30.         $(selectoresRamas).each(function(i, a)
  31.         {
  32.             ramas[i] = a;
  33.         });
  34.     }
  35.  
  36.     function mover(objeto) { // Mueve al pájaro al objeto que se le pasa
  37.        
  38.         // Objetos jquery con la posicion X e Y del pájaro
  39.         posicionNueva = $(objeto).offset(); // Proxima posición
  40.         posicionActual = $("#pajaro").offset(); // Posición actual
  41.  
  42.         estadoPajaro = ""; // Reset del estado del pájaro
  43.  
  44.         if( (posicionNueva.top - 12) == (posicionActual.top) )
  45.         {
  46.             // En caso de que la posicion nueva menos el ancho del pájaro sea igual a la posicion actual
  47.             estadoPajaro = "acicalandose";
  48.         }
  49.         else
  50.         {
  51.             var posicionNuevaLeft = rand(posicionNueva.left, posicionNueva.left + $(objeto).width() - $("#pajaro").width());
  52.             if(posicionNuevaLeft > posicionActual.left)
  53.             {
  54.                 estadoPajaro = "movder";
  55.             }
  56.             else
  57.             {
  58.                 estadoPajaro = "movizq";   
  59.             }
  60.  
  61.             $("#pajaro").animate(
  62.             {
  63.                 marginLeft: posicionNuevaLeft, // Posicion X
  64.                 marginTop: posicionNueva.top - $("#pajaro").height() * 2, // Posicion Y
  65.             }, rand(4000, 7000), "swing", function()
  66.             {
  67.                 // Esta función se activa al terminar la animación
  68.                 //$("#pajaro").css("background-color", "green"); // Pájaro parado verde
  69.                 $("#pajaro").css("background-image", "url('paradosprite.png')");
  70.             });
  71.         }  
  72.     }
  73.  
  74.     function rand(X, Y) // Devuelve un número aleatorio entre X e Y
  75.     {
  76.             return Math.floor(Math.random()*(Y-X))+X
  77.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement