我正在尝试旋转导弹炮塔的缓冲图像,使其看起来像是在跟踪目标。基本上,我可以使用 AffineTransform/ affinetransform 轻松完成
简而言之,我当前的代码是:
public BufferedImage tower = null;
try
{
tower = ImageIO.read(SpriteSheet.class.getResource("/spriteSheet/testTower.png"));
}
catch(IOException e)
{
AffineTransform tx = AffineTransform.getRotateInstance(rotationRequired, locationX, locationY);
AffineTransformOp = op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
//then I draw it using
g.drawImage(op.filter(tower, null), towerLocationX, towerLocationY, null);
这行得通,但我想做的是变换(旋转)缓冲图像,然后将新旋转的像素数据复制到像素数组中,然后将其绘制到屏幕上,因为我相信这是大多数游戏绘制旋转图像而不是绘制的方式一个png直接显示在屏幕上。
但我知道什么。2D 游戏究竟是如何绘制旋转图像的?我做得对吗,还是有更好/更有效的内存效率方法?