1

这是我在谷歌上搜索和修改代码的第三天,我很绝望,我真的需要帮助,所以请耐心等待。

解释

我将从解释基本概念开始。屏幕中间有一个“角色”,总是完全居中。该层下面是一个大正方形,我将其称为画布。当你四处移动时,游戏实际上只是模拟移动,如果你愿意的话,是一个“虚拟相机”,所以角色实际上并没有移动,画布只是在它后面移动。

我的问题

在这个游戏中,相机需要能够“放大”和缩小,为此,我根据缩放值调整了画布和其他所有内容的大小。(默认为 1)画布的宽度和高度始终为 8000 * 缩放值。这很好,但是,我在定位画布时遇到了很大的困难,以便它在您放大和缩小时保持在相同的相对位置 - 或者更确切地说是“缩放到点”或“从点缩放”效果。我根本无法为此创建数学。

编码

    local oldScale = g.scale;
    local newScale = n.scaleTest.Value;
    g.scale = newScale;
    g.x = g.x + (g.x * newScale);
    g.y = g.y + (g.y * newScale);

g.scale 代表缩放值,一切都会调整到这个大小。

gx 和 gy 是画布的坐标。代码中的数学是完全不正确的。

n.scaleTest.Value 是我新设置的比例的临时变量。它可以随时改变。

想法/其他重要信息

我也可以检索画布的 AbsolutePosition 和 AbsoluteSize。我已经考虑在我的计算中实现从画布边缘到角色的距离,但我不完全确定如何做到这一点。

感谢您的任何帮助,我将由衷地感谢,我非常卡住,不知道该问谁。

4

0 回答 0