2

これが私のキャラクターの左脚を描く例です:

g2d.fillRect(pX + (headW - bodyW)/2, pY + headH + bodyH, legW, legH); //left leg

私は次のようにsで画像を回転させる方法を知っていますAffineTransform

AffineTransform tr = g2d.getTransform();
tr.rotate(Math.toRadians(rotAmount));
g2d.drawImage(playerI, tr, null);

この長方形を?で回転させるにはどうすればよいAffineTransformですか?私は次のようなことはできません:

g2d.rotate(Math.toRadians(rotAmount));

それは私の人全体を回転させるからです。どうすれば脚だけを回転させることができますか?

4

2 に答える 2

2

気にしないで、私は方法を見つけました。

AffineTransform old = g2d.getTransform();
g2d.rotate(Math.toRadians(lLegRot));
g2d.fillRect(pX + (headW - bodyW)/2, pY + headH + bodyH, legW, legH); //left leg
g2d.setTransform(old);
g2d.rotate(Math.toRadians(rLegRot));
g2d.fillRect(pX + headW - legW - (headW - bodyW)/2, pY + headH + bodyH, legW, legH); //right leg

新しいローテーションは、以前にローテーションされたものをそのまま維持しながら、古いローテーションをオーバーライドします。回転をリセットするには、を実行しますg2d.setTransform(old);

于 2012-12-31T21:02:09.980 に答える
0

java.awt.geomを使用する場合は、rotate(someAngle)メソッドを使用して作成できます。

于 2012-12-31T21:04:59.850 に答える