缩放和平移JPanel上绘制了多个图像

时间:2014-02-19 20:11:53

标签: java swing affinetransform

我正在绘制一个瓦片地图,在那里我为每个瓦片绘制一个不同的64x64像素图像,每个瓦片对象自行绘制。

我还有一个玩家对象和僵尸对象也可以绘制自己。玩家和僵尸对象有自己的仿射变换实例,修改我为每个人调用的g.drawImage。

我的问题是。我如何实现一个可以缩放和平移的“相机”,只能看到JPanel内部的地图部分?

1 个答案:

答案 0 :(得分:1)

我要做的是从BufferedImage开始,它将作为最终输出。

创建它,使其大小为width x scaleheight x scale

使用Graphics从中获取BufferedImage#createGraphics上下文,并使用Graphics#scale相应地设置上下文的比例。

然后将输出绘制到此Graphics上下文,请勿忘记在完成后调用Graphics#dispose

使用此BufferedImage,将其渲染到屏幕上。这为您提供了“缩放”功能。

对于平移,您可以查看Java Applet Game 2D Window Scrolling作为示例。