2014-02-19 63 views
-1

我正在绘制一个平铺地图,在这里我为每个平铺绘制不同的64x64像素图像,并且每个平铺对象都将绘制自己。缩放和平移JPanel,在其上绘制多个图像

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

我的问题是。我将如何实现一个可以缩放和平移的“摄影机”,以便只查看JPanel中的地图部分?

回答

1

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

创建它,所以它的大小是width x scaleheight x scale

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

然后将输出绘制到此Graphics上下文中,当您完成时,请勿忘记拨打Graphics#dispose

用这个BufferedImage,把它渲染到屏幕上。这为您提供了“缩放”功能。

对于平移,你可以看看Java Applet Game 2D Window Scrolling为例。