Я только начинаю пытаться сделать анимацию с использованием HTML5 и JavaScript. В настоящее время я создал класс JavaScript для игры в мяч. Она имеет функцию обновления, которая должна обновить положение шара и функцию вытяжки, которая должна сделать это:Простая анимация шара HTML5 с использованием requestAnimationFrame
/*global Vector*/
var Ball = (function() {
function Ball(pPostion) {
this.setPosition(pPostion);
}
Ball.prototype.getPosition = function() {
return this.mPosition;
};
Ball.prototype.setPosition = function (pPosition) {
this.mPosition = pPosition;
};
Ball.prototype.draw = function (pContext) {
pContext.save();
pContext.beginPath();
pContext.arc(100, 100, 20, 0, Math.PI * 2, true);
pContext.closePath();
pContext.fillStyle = '#ff0000';
pContext.stroke();
pContext.restore();
};
Ball.prototype.update = function() {
this.getPosition().add(new Vector(10, 0));
};
return Ball;
}());
В моей основной секции я создал следующий метод:
function ballGameLoop() {
ball.draw(mainContext);
ball.update();
requestAnimationFrame(ballGameLoop);
}
И когда он нарисовал мяч, но он, похоже, совсем не движется. У меня нет определенного типа способов, я хочу, чтобы мяч был анимирован, просто любое движение было бы хорошим. Может ли кто-нибудь дать совет, где я могу ошибиться?
Не то, чтобы это исправляло вашу точную программу, но вот довольно простая реализация шаров, отскакивающих вокруг. Могу дать вам несколько идей: http://dpoisn.com/demos/bounce/ – durbnpoisn
_ «похоже, совсем не движется». _ Потому что вы никогда не используете 'this.mPosition', который, как я полагаю, является свойством вы хотите использовать в качестве позиции мяча. Ваш вызов 'arc()' использует статические значения –