Я пытаюсь использовать this «moveTo (x, y)» (по markE) функция для нескольких объектов. This - это то, что я пробовал. И это то, что я пытался сделать:Перемещение нескольких объектов в холсте на координаты x, y
Расчет и перемещение объекта в woriking пример выглядеть следующим образом:
pct += .01;
// if we're not done, request another animation frame
if (pct < 1.00) {
requestAnimFrame(animate);
}
// Calculate the next XY position
var nextX = startingX + dx * pct;
var nextY = startingY + dy * pct;
// Draw the shape
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillRect(nextX, nextY, 40, 30);
И это то, что я пытаюсь сделать для нескольких форм:
var shapesLength = shapes.length;
for (var i = 0; i < shapesLength; i++) {// Loop through every object
var tmpShape = shapes[i];//selecting shape
tmpShape.pct += .01;// increment pct towards 100%
// if we're not done, request another animation frame
if (tmpShape.pct < 1.00) {
requestAnimFrame(animate);
}
// Calculate the next XY position
var nextX = tmpShape.startingX + tmpShape.dx * tmpShape.pct;
var nextY = tmpShape.startingY + tmpShape.dy * tmpShape.pct;
// Draw the shape
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillRect(nextX, nextY, 10, 10);
};
Но что-то пошло не так, и я не знаю, что.
Вот пример того, как реализовать несколько точек для каждой формы: http://jsfiddle.net/m1erickson/UNjdC/ – markE
Как создать мгновенное создание объектов и получить их после достижения точки назначения? – eko24
Массив shape [] содержит определение всех фигур, которые будут нарисованы и анимированы. В этом случае фигурами являются все прямоугольники, у которых есть точки начала и конца анимации и цвета. Если вам нужна мгновенная генерация объектов, просто добавьте новые объекты в массив shape []. Если вы хотите, чтобы объект исчез после достижения точки назначения, удалите эту строку: drawShape (shape, shape.waypoints.length - 1); – markE