【问题标题】:Zoom and Pan JPanel with multiple Images drawn on it缩放和平移 JPanel,上面绘制了多个图像
【发布时间】:2014-02-19 20:11:53
【问题描述】:

我正在绘制一个瓦片地图,其中我为每个瓦片绘制不同的 64x64 像素图像,并且每个瓦片对象都自己绘制。

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

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

【问题讨论】:

    标签: java swing affinetransform


    【解决方案1】:

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

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

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

    然后将输出绘制到这个 Graphics 上下文,完成后不要忘记调用 Graphics#dispose

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

    关于平移,您可以查看Java Applet Game 2D Window Scrolling 的示例。

    【讨论】:

      猜你喜欢
      • 2010-10-19
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      相关资源
      最近更新 更多