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