Ejemplo animación loop

En este ejemplo se usa el método attr para almacenar la velocidad en x/y de cada objeto, luego usando el método loop se crea una animación:

// crear instancia de canvas-event
var ce = Cevent("canvas"),
    width = ce.width,
    height = ce.height;

function randint(i) {
    return parseInt(Math.random()*i);
}

function randcolor() {
    return "rgb(" + [randint(255), randint(255), randint(255)] + ")";
}

for (var i = 0; i < 50; i++) {
    ce.circle(randint(width), randint(height), randint(25)+5)
    .attr({
        fill: randcolor(),
        alpha: Math.random(),
        // atributos adicionales
        velx: Math.random(),
        vely: Math.random(),
    });
}

// guardar todos los circulos
var circles = ce.getAll("circle");

ce.loop(function(c){
    var circle, l = circles.length;

    // por cada circulo
    for (var i = 0; i < l; i++) {
        circle = circles[i];
        // desplazar
        circle.x += circle.velx;
        circle.y += circle.vely;

        // cambiar dirección si choca con el borde
        if (circle.x >= width || circle.x <= 0)
            circle.velx *= -1;
        if (circle.y >= height || circle.y <= 0)
            circle.vely *= -1;
    }
});

Related Topics

This Page

Fork me on GitHub