Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var ramas = new Array(); // Array de objetos donde se va a posar el pájaro
- var estadoPajaro = ""; // Usamos esto para mostrar el estado del pájaro
- var selectoresRamas = "div, img, p"; // Selectores de los objetos donde se posará el pájaro
- $(document).ready(function() { listar_ramas(), loop() }); // Primero guardamos los objetos y luego llamamos al loop
- function loop() // Loop del script
- {
- mover(ramas[rand(0,ramas.length)]); // Movemos hacia alguno de los objetos del array
- switch(estadoPajaro)
- {
- case "acicalandose":
- $("#pajaro").css("background-image", "url('acicalandose.png')");
- break;
- case "movder":
- $("#pajaro").css("background-image", "url('movder.png')");
- break;
- case "movizq":
- $("#pajaro").css("background-image", "url('movizq.png')");
- break;
- }
- window.setTimeout(function() { loop() }, rand(8000, 12000));
- }
- function listar_ramas() // Guardamos todos los objetos en un array
- {
- $(selectoresRamas).each(function(i, a)
- {
- ramas[i] = a;
- });
- }
- function mover(objeto) { // Mueve al pájaro al objeto que se le pasa
- // Objetos jquery con la posicion X e Y del pájaro
- posicionNueva = $(objeto).offset(); // Proxima posición
- posicionActual = $("#pajaro").offset(); // Posición actual
- estadoPajaro = ""; // Reset del estado del pájaro
- if( (posicionNueva.top - 12) == (posicionActual.top) )
- {
- // En caso de que la posicion nueva menos el ancho del pájaro sea igual a la posicion actual
- estadoPajaro = "acicalandose";
- }
- else
- {
- var posicionNuevaLeft = rand(posicionNueva.left, posicionNueva.left + $(objeto).width() - $("#pajaro").width());
- if(posicionNuevaLeft > posicionActual.left)
- {
- estadoPajaro = "movder";
- }
- else
- {
- estadoPajaro = "movizq";
- }
- $("#pajaro").animate(
- {
- marginLeft: posicionNuevaLeft, // Posicion X
- marginTop: posicionNueva.top - $("#pajaro").height() * 2, // Posicion Y
- }, rand(4000, 7000), "swing", function()
- {
- // Esta función se activa al terminar la animación
- //$("#pajaro").css("background-color", "green"); // Pájaro parado verde
- $("#pajaro").css("background-image", "url('paradosprite.png')");
- });
- }
- }
- function rand(X, Y) // Devuelve un número aleatorio entre X e Y
- {
- return Math.floor(Math.random()*(Y-X))+X
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement