4

我的屏幕外BufferedImage太大,无法一次全部显示。所以我getSubimage用来绘制整个图像的一部分。我想知道使用setClipon 是否Graphics会使用更少的资源。文档说“渲染操作在剪切区域之外没有影响”。如果我使用剪辑与不使用剪辑会有多大区别?

4

1 回答 1

3

当您在Graphics对象上设置剪辑(例如 a Rectangle(0, 0, 100, 100)),然后使用相同的Graphics对象绘制图像(例如大小为 300x300 的图像)时,将省略位于剪辑之外的图像部分。只会绘制示例的左上角 100x100 角。

这样做的主要优点是,它大大加快了绘图过程。我不太确定它是如何让它更快的;事实上,我现在正在查找这个。

无论如何,我发现这在设计全屏游戏时非常方便。您制作的剪辑绘制到屏幕上的效率越高,您的游戏运行就越流畅。当一段时间内没有更新屏幕组件时,剪辑保持空白,不绘制任何内容并为游戏逻辑留下资源。

于 2012-08-03T22:51:14.050 回答