我有一张需要旋转到某个角度的图像,然后在某个点将其绘制到画布上。我目前有这个:
var image = roach.image;
image.style.msTransform = 'rotate(' + roach.heading + 'deg)';
this.gameContext.drawImage(image, roach.position.x, roach.position.y);
我如何编辑它以使其工作,其中 roach.heading 是我想将其旋转到度数的角度。
我有一张需要旋转到某个角度的图像,然后在某个点将其绘制到画布上。我目前有这个:
var image = roach.image;
image.style.msTransform = 'rotate(' + roach.heading + 'deg)';
this.gameContext.drawImage(image, roach.position.x, roach.position.y);
我如何编辑它以使其工作,其中 roach.heading 是我想将其旋转到度数的角度。
尝试这个:
var image = roach.image,
ctx = this.gameContext,
widthHalf = Math.floor( image.width / 2 ),
heightHalf = Math.floor( image.height / 2 );
ctx.save();
ctx.translate( roach.position.x, roach.position.y );
ctx.translate( widthHalf, heightHalf );
ctx.rotate( ( Math.PI / 180 ) * roach.heading );
ctx.drawImage( image, -widthHalf, -heightHalf );
ctx.restore();
jsfiddle:http: //jsfiddle.net/PwzEc/