我刚开始尝试使用HTML5和JavaScript制作动画 . 目前我已经为球创建了一个JavaScript类 . 它有一个更新功能,应该更新球的位置和绘制功能,它应该绘制它:
/*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);
}
当被召唤时,它确实会吸引球,但它似乎根本不动 . 我没有特定类型的方式我希望球被动画,任何类型的运动都会很好 . 任何人都可以就我可能出错的地方提出任何建议吗?
1 回答
从它的外观来看,你似乎只是在相同的坐标上反复绘制一个圆弧(中心位于(100,100)) .
将Ball的位置合并到此将是使渲染位置取决于对象位置的方法 . 从它看来,下面的内容将提供运动:
我当然假设你如何设置Vector对象,所以我猜x和y可以分别通过(Vector).X和(Vector).Y访问 .
无论如何只是我的方法 .