以下是绘制我角色左腿的示例:
g2d.fillRect(pX + (headW - bodyW)/2, pY + headH + bodyH, legW, legH); //left leg
我知道如何用AffineTransform
s旋转图像,如下所示:
AffineTransform tr = g2d.getTransform();
tr.rotate(Math.toRadians(rotAmount));
g2d.drawImage(playerI, tr, null);
如何使用AffineTransform
旋转此矩形?我做不了类似的事情:
g2d.rotate(Math.toRadians(rotAmount));
因为这会旋转我的整个人。我怎么才能只旋转腿?
答案 0 :(得分: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);
。
答案 1 :(得分:0)
如果你决定使用java.awt.geom,你可以使用rotate(someAngle)方法。