【发布时间】:2014-02-19 20:11:53
【问题描述】:
我正在绘制一个瓦片地图,其中我为每个瓦片绘制不同的 64x64 像素图像,并且每个瓦片对象都自己绘制。
我还有一个玩家对象和僵尸对象,它们也会自己绘制。玩家和僵尸对象有自己的仿射变换实例,它们修改了我为每个对象调用的 g.drawImage。
我的问题是。我将如何实现一个可以缩放和平移的“相机”,以仅查看 JPanel 内的地图部分?
【问题讨论】:
标签: java swing affinetransform
我正在绘制一个瓦片地图,其中我为每个瓦片绘制不同的 64x64 像素图像,并且每个瓦片对象都自己绘制。
我还有一个玩家对象和僵尸对象,它们也会自己绘制。玩家和僵尸对象有自己的仿射变换实例,它们修改了我为每个对象调用的 g.drawImage。
我的问题是。我将如何实现一个可以缩放和平移的“相机”,以仅查看 JPanel 内的地图部分?
【问题讨论】:
标签: java swing affinetransform
我要做的是从BufferedImage 开始,它将作为最终输出。
创建它,使其大小为width x scale 和height x scale。
使用BufferedImage#createGraphics 从中获取Graphics 上下文,并使用Graphics#scale 相应地设置上下文的比例。
然后将输出绘制到这个 Graphics 上下文,完成后不要忘记调用 Graphics#dispose。
使用此BufferedImage,将其渲染到屏幕上。这为您提供了“缩放”功能。
关于平移,您可以查看Java Applet Game 2D Window Scrolling 的示例。
【讨论】: