【发布时间】:2020-01-12 21:04:40
【问题描述】:
我在一张图像中有多个精灵,我想将单个精灵绘制到画布上。我无法让它们旋转。
当我尝试旋转一个精灵时,它似乎永远不会围绕它应该在的点旋转。
我正在使用以下功能。角度是在加载时设置的。
Sprite.prototype.draw = function (ctx, x ,y) {
if (this.angle == 0) {
ctx.drawImage(this.img, this.x, this.y, this.width, this.height, x, y, this.width, this.height);
}
else {
ctx.save();
ctx.translate(x, y);
ctx.rotate(this.angle * this._TORADIANS);
ctx.drawImage(this.img, this.x, this.y, this.width, this.height, x, y, this.width, this.height);
ctx.restore();
}
}
我浏览了几个教程,但在这种情况下似乎没有任何效果。
【问题讨论】:
-
是围绕左上角而不是围绕图像中心旋转的问题吗?如果您可以发布您正在做的事情的简化 JSFiddle,那将有所帮助。否则尝试在
rotate之前添加ctx.translate(this.img.width/2,this.img.height/2);,然后在rotate之后添加ctx.translate(-this.img.width/2,-this.img.height/2);,这样可以解决您的问题吗? -
@Jared 是的,也不是。我也必须正确绘制图像。
标签: javascript html canvas graphics