Java 使用LibGdx在大图像边框内平移

Java 使用LibGdx在大图像边框内平移,java,libgdx,Java,Libgdx,我正在构建一个小的测试游戏,基本上是waldo在哪里。我有一个大的图像,我可以四处平移,寻找瓦尔多,但我不知道如何将相机保持在精灵边界x,y内。现在,您可以通过图像边界进行平移,然后继续平移,直到永远 相关代码: sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2); public boolean pan(float x, float y, float deltaX, float deltaY) { ca

我正在构建一个小的测试游戏,基本上是waldo在哪里。我有一个大的图像,我可以四处平移,寻找瓦尔多,但我不知道如何将相机保持在精灵边界x,y内。现在,您可以通过图像边界进行平移,然后继续平移,直到永远

相关代码:

sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2);

public boolean pan(float x, float y, float deltaX, float deltaY) {
        camera.translate(-deltaX * PAN_SPEED, deltaY * PAN_SPEED);
        camera.update();
        return true;
    }

没有太多,我已经尝试了很多方法,但问题是我不知道如何获得我已经平移的距离,如果我要建立边界,我需要这个距离。现在sprite.getX==-2200,相机视口只有480x800,所以我很难处理图像大小、视口以及平移的距离

我以前不得不解决这个问题,但我做得很不雅观。基本上,我只是有一个日志打印出我的当前相机的位置,因为我左右平移。当我从屏幕边缘看到下面空白的GL擦拭时,我写下了相机的位置。

最后我知道,如果camera.getX>sprite.getWidth-someVal,屏幕上的边缘就会消失。所以,我刚刚添加了一个方法,如果相机超出了这些预定义的边界,那么它会减少相机的任何X/Y值


这不是一个很好的答案,但它也允许你控制。

至少你是在试图帮助别人。我认为这实际上可以让我解决它,所以我会接受: