-1
我正在绘制一个平铺地图,在这里我为每个平铺绘制不同的64x64像素图像,并且每个平铺对象都将绘制自己。缩放和平移JPanel,在其上绘制多个图像
我也有一个玩家对象和僵尸对象,也绘制自己。玩家和僵尸对象都有自己的仿射变换实例,它们修改了我为每个实例调用的g.drawImage。
我的问题是。我将如何实现一个可以缩放和平移的“摄影机”,以便只查看JPanel中的地图部分?
我正在绘制一个平铺地图,在这里我为每个平铺绘制不同的64x64像素图像,并且每个平铺对象都将绘制自己。缩放和平移JPanel,在其上绘制多个图像
我也有一个玩家对象和僵尸对象,也绘制自己。玩家和僵尸对象都有自己的仿射变换实例,它们修改了我为每个实例调用的g.drawImage。
我的问题是。我将如何实现一个可以缩放和平移的“摄影机”,以便只查看JPanel中的地图部分?
我会做的是从BufferedImage
开始,它将作为最终输出。
创建它,所以它的大小是width x scale
和height x scale
。
使用BufferedImage#createGraphics
从中获取Graphics
上下文,并使用Graphics#scale
相应地设置上下文的比例。
然后将输出绘制到此Graphics
上下文中,当您完成时,请勿忘记拨打Graphics#dispose
。
用这个BufferedImage
,把它渲染到屏幕上。这为您提供了“缩放”功能。
对于平移,你可以看看Java Applet Game 2D Window Scrolling为例。