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 に答える