随着相机缩放,矩形应该修改

时间:2014-01-07 10:31:08

标签: math camera libgdx

我正在开发我在Libgdx的第一场比赛。我设法做了很多,但现在遇到了问题

我已将放大/缩小效果设置为网格(例如6x7)。我希望矩形相应地调整大小。即矩形尺寸应随着相机变焦比而增加/减少。

说..矩形设置为(100,100,宽度,高度)和camera.zoom = 1(默认)

在camera.zoom = 0.3矩形设置为相同位置之后。

我希望矩形能够以缩放比率进行变换。我无法找到应该改变的金额。 我使用了scene2D。我用gesturelistener进行缩放

public boolean zoom(float initialDistance, float distance){
    float ratio = initialDistance / distance;
    camera.zoom= initialScale * ratio;
}

1 个答案:

答案 0 :(得分:1)

当您的相机变焦发生变化时,您实际上不想更改Rectangle s。在真实相机上使用变焦时,汽车和人或树木也不会改变尺寸。

您想要的是根据当前缩放级别更改输入坐标。您可以使用Camera.unproject(Vector3)来实现此目的。

可能看起来像这样:

Camera cam = ...;
Vector3 worldTouchPoint = new Vector3(touchX, touchY, 0);
cam.unproject(worldTouchPoint);

之后,您可以使用worldTouchPoint检查与(未修改的)矩形的碰撞。