在 java 中旋转图像
Rotating image in java
我正在尝试制作一款玩家有时不得不旋转的游戏,但我想不出一种方法让它每次旋转得更多,这就是我得到的:
Graphics2D g2d = (Graphics2D) g;
AffineTransform at = new AffineTransform();
at.translate(300, Main.height - 115);
if(rotateright) {
at.rotate(Math.PI / 15);
} else if(rotateleft) {
at.rotate(Math.PI / 15);
}
at.scale(0.125, 0.125);
at.translate(-texture.getWidth() / 2, -texture.getHeight() / 2);
g2d.drawImage(texture, at, null);
这个方法让它旋转得很好,但我找不到让它每次旋转更多的方法,所以这个方法几乎只是旋转它,但只旋转一次,然后就停止了。反正有没有增加旋转什么的?
你总是从正常旋转的图像开始(0 deg/RAD 旋转),然后用 PI/15 RAD 辐射它。如果您希望它随时间旋转,则需要将 PI/15 乘以一个将随动画持续时间变化的值。
我正在尝试制作一款玩家有时不得不旋转的游戏,但我想不出一种方法让它每次旋转得更多,这就是我得到的: Graphics2D g2d = (Graphics2D) g;
AffineTransform at = new AffineTransform();
at.translate(300, Main.height - 115);
if(rotateright) {
at.rotate(Math.PI / 15);
} else if(rotateleft) {
at.rotate(Math.PI / 15);
}
at.scale(0.125, 0.125);
at.translate(-texture.getWidth() / 2, -texture.getHeight() / 2);
g2d.drawImage(texture, at, null);
这个方法让它旋转得很好,但我找不到让它每次旋转更多的方法,所以这个方法几乎只是旋转它,但只旋转一次,然后就停止了。反正有没有增加旋转什么的?
你总是从正常旋转的图像开始(0 deg/RAD 旋转),然后用 PI/15 RAD 辐射它。如果您希望它随时间旋转,则需要将 PI/15 乘以一个将随动画持续时间变化的值。