将坐标转换为不同的坐标系?
Convet coordinates to a different coordinate system?
大家好,我正在制作 GUI,我的 GUI 上的图像使用计算机坐标系,看起来像
我试图将坐标转换为正常坐标系,例如
快疯了想不通。我现在正在使用 LUA。但是当我点击图像时,我得到的是第一个坐标系的坐标,但需要转换到第二个坐标系才能在游戏中使用。
我的图形用户界面是什么样的
例如,当我 select 我的 Gui 时,我得到 x=492 和 y=247,这对于我的游戏坐标来说应该是 0,0。我只需要一种方法来转换它们。一个像素在游戏中是 500 米,所以 0,1 在游戏中就是 500 米。
假设您的世界地图没有超出视口,那么下面的内容应该可以工作。
function convertToWorldPoint(x,y)
x = ( (x-horizontalOffset) - (worldWidth/2) ) * scale
y = ( (y-verticalOffset) - (worldHeight/2) ) * scale
return x,y
end
其中水平和垂直偏移是视口与屏幕左侧和顶部之间的距离,世界宽度和高度是您的世界大小。所以你的世界的一个例子可能是:
function convertToWorldPoint(x,y)
x = ( (x+8) - (1000/2) ) * 500
y = ( (y+3) - (500/2) ) * 500
return x,y
end
print(convertToWorldPoint(492,247)) -- Returns 0,0
当然,您可能需要根据是否可以放大您的世界或是否可以在您的世界中平移来更改功能,但由于您没有向我们提供任何这些细节以供使用,我假设这就是您所需要的。
大家好,我正在制作 GUI,我的 GUI 上的图像使用计算机坐标系,看起来像
我试图将坐标转换为正常坐标系,例如
快疯了想不通。我现在正在使用 LUA。但是当我点击图像时,我得到的是第一个坐标系的坐标,但需要转换到第二个坐标系才能在游戏中使用。
我的图形用户界面是什么样的
例如,当我 select 我的 Gui 时,我得到 x=492 和 y=247,这对于我的游戏坐标来说应该是 0,0。我只需要一种方法来转换它们。一个像素在游戏中是 500 米,所以 0,1 在游戏中就是 500 米。
假设您的世界地图没有超出视口,那么下面的内容应该可以工作。
function convertToWorldPoint(x,y)
x = ( (x-horizontalOffset) - (worldWidth/2) ) * scale
y = ( (y-verticalOffset) - (worldHeight/2) ) * scale
return x,y
end
其中水平和垂直偏移是视口与屏幕左侧和顶部之间的距离,世界宽度和高度是您的世界大小。所以你的世界的一个例子可能是:
function convertToWorldPoint(x,y)
x = ( (x+8) - (1000/2) ) * 500
y = ( (y+3) - (500/2) ) * 500
return x,y
end
print(convertToWorldPoint(492,247)) -- Returns 0,0
当然,您可能需要根据是否可以放大您的世界或是否可以在您的世界中平移来更改功能,但由于您没有向我们提供任何这些细节以供使用,我假设这就是您所需要的。