我正在开发我在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;
}
答案 0 :(得分:1)
当您的相机变焦发生变化时,您实际上不想更改Rectangle
s。在真实相机上使用变焦时,汽车和人或树木也不会改变尺寸。
您想要的是根据当前缩放级别更改输入坐标。您可以使用Camera.unproject(Vector3)
来实现此目的。
可能看起来像这样:
Camera cam = ...;
Vector3 worldTouchPoint = new Vector3(touchX, touchY, 0);
cam.unproject(worldTouchPoint);
之后,您可以使用worldTouchPoint检查与(未修改的)矩形的碰撞。