如果您正在进行固定缩放(即每个缩放级别与相机的距离是固定的),而不是流体缩放(播放器可以放大 3.3x、7.5x,而不仅仅是 1x、2x、3x 等)。 ) 那么尝试通过简单地应用缩放变换来解决这个问题是非常浪费的。这很诱人,因为这是最简单的方法,而且从实现的角度来看很容易理解,但这意味着在最大缩小时,您将渲染一个在 X 方向上大 10 倍,在 X 方向上大 10 倍的区域Y 方向 - 所以面积你必须渲染的世界比最大放大时大 100 倍。我也怀疑你会喜欢你的纹理在缩小时被硬件挤压的方式。计算机图形与光学不同 - 亚像素渲染,如果您将任务交给软件/硬件,计算机图形中发生的其他事情不会使您的纹理看起来非常好。
即使你进行流体缩放,我仍然会做细节层次纹理,并根据正在渲染的世界和相机之间的距离动态交换它们。
另外,10 个缩放级别?你确定你真的需要 10 个缩放级别吗?缩放通常用于 2D 游戏,以允许您以不同的细节级别执行不同的活动,因为特定的缩放级别特别适合特定的活动集。我不记得任何需要 10 个缩放级别来完成此操作的 2D 游戏。3-5是我见过的最多的,我从来没有觉得不够。在每个缩放级别生成 10 个缩放级别的图像似乎也需要大量的艺术作品。
您还可能会发现应用 AffineTransform 听起来是个好主意,但它的计算成本非常高,而且如果您需要 60fps 的性能,您不太可能以这种方式实现它。不过,不要相信我的话,去尝试一下,看看它自己摔倒有多严重。