jsfiddle здесь: http://jsfiddle.net/yw0w18m3/2/
Я использую paper.js для создания фонового изображения, которое выглядит примерно так:
По сути, я создаю пару тысяч треугольников в цикле и вращаю их на каждой второй итерации.
function Tri(x, y, rotate) {
var tri = new Path([
new Point((x - 42), (y - 48)),
new Point((x - 42), y),
new Point(x, (y - 24)),
new Point((x - 42), (y - 48))
]);
tri.fillColor = {
hue: Math.random() * 360,
saturation: 0,
brightness: ( (( Math.random() ) * .95) + .3 )
};
if(rotate) { tri.rotate(180); }
}
for (var i = 0; i < 2000; i++) {
rotate = false;
if( i % 2 ) {
rotate = true;
}
new Tri(x, y, rotate);
x = x + 42;
if( x > (winWidth + 42) ) {
x = 0 ;
y = y + 24;
}
}
Кажется, что есть короткая 1-2-секундная пауза/заморозка во время рисования фигур. Есть ли более эффективный способ сначала нарисовать все фигуры (или поместить их в массив), а затем сразу добавить это на холст?
Я основывал свой код на примере здесь: http://paperjs.org/examples/candy-crash/ (нажмите "источник" в правом верхнем углу).
Буду признателен за любую оказанную помощь.
Спасибо!