0

我正在尝试旋转 180 度并移动对象。但这对我不起作用。我在jsfiddle中添加了它

var enemy = enemeis[i];

// 45 shows some rotation, I want 180%               
var rangle =  45 * Math.PI/180 ;
ctx.save();

ctx.translate( enemy.x, enemy.y );
ctx.rotate( rangle );
ctx.drawImage( enemy.el , enemy.x , enemy.y );

ctx.restore();                    

enemy.y++;

我想让敌人的虫子旋转 180%,然后从上到下移动。我真的迷路了,希望能得到一些帮助。

4

1 回答 1

1

我为你修好了:http: //jsfiddle.net/nubbel/DVpWL/3/

var enemy = enemeis[i];

var rangle =  Math.PI ;
ctx.save();

var offsetX = enemy.x + enemy.el.width/2.0;
var offsetY = enemy.y + enemy.el.height/2.0;

ctx.translate( offsetX, offsetY );
ctx.rotate( rangle );
ctx.translate( -offsetX, -offsetY );

ctx.drawImage( enemy.el , enemy.x , enemy.y );

ctx.restore();                    

enemy.y++;                  

基本上,它的作用是:

  • 将坐标系的原点移动到敌人图像的中心
  • 围绕该点旋转
  • 将原点移回之前的位置
于 2013-05-14T07:13:26.560 回答