【发布时间】:2015-08-17 20:27:36
【问题描述】:
我正在尝试为基本游戏实现 2d 缩放。我有图像缩放。我也有一个基本的缩放有时会失败。就像...在您开始大量测试之前,它看起来几乎是合法的。有时,当我放大并将两个对象移近,然后再缩小时,这些对象现在会重叠,尽管放大后的版本显示不同。
zoom_level 从 1 开始。
zoomIn():
zoom_level *=1.2;
for sprite in sprites:
//make sprites 1.2 times their current size
sprite.x *= (zoom_level * zoom_level);
sprite.y *= (zoom_level * zoom_level);
【问题讨论】:
-
你用相同的缩放系数缩放精灵?否则,当它们的距离减小时,它们自然会重叠。如果您也缩放它们并且它们仅重叠几个像素,这可能是舍入错误。然后你可以尝试使用 floor() 而不是 round() 来对精灵的大小进行四舍五入。
-
精灵是鸟瞰图。我想放大窗口的一部分(然后四处滑动以查看当前上下文之外的精灵),所以我希望它们按相同的大小缩放并相应地调整距离的比例。
-
如何调整我的代码以使在一个缩放级别中不重叠的精灵在其他缩放级别中仍然不重叠?
-
如果你把两张截图(缩小而不重叠,放大重叠)放在某个地方可能会更容易理解这个问题。但我猜这是一个标准解的标准问题,但我自己的知识在那里真的很差。
-
当我放大时,可能有两个对象不重叠。我一缩小,它们就会重叠。在短期内,我缩放精灵大小比放大时的距离更大。
标签: 2d zooming game-engine scaling