我正在尝试使用下面的代码缩放图像(即来自精灵表)。
Point pos = new Point(100, 100); //this shows where to display the image
Rectangle a = getAnimatedPos(); //just gets the coordinates of a specified image (which works correctly)
g.drawImage(img, pos.x, pos.y, pos.x+getWidth(), pos.y+getHeight(), a.x, a.y, a.x+a.width, a.y+a.height, null);
the function getWidth() returns the width of the frame. The formula is (imageWidth/rows).
the function getHeight() returns the height of the frame. The formula is (imageHeight/cols).
当我缩放图像(通过更改宽度或高度)时,它开始显示其他帧?如果我将图像的宽度或高度保留为默认大小,则它可以工作。我认为通过定义源坐标和目标坐标它不会这样做。
澄清一下,图像是在一个内部框架上绘制/渲染的,比如大小为 640x480。另外,当我指的是框架时,我指的是精灵表,并且表中的每个图像都是一个框架。当然是用于动画。
需要澄清的另一件事是,图像不是绘制在组件之上的。只是一个内部框架。
我应该怎么解决这个问题?
屏幕截图
当一切都是默认的,这就是它的样子:http ://wisemindstudios.com/good.png
当我改变一些东西时:http ://wisemindstudios.com/bad.png
非常感谢!