我正在使用带有LibGDX和Box2D库 的Java编写游戏。
屏幕包含 12*7 块,横向,所以我使用 12 和 7 作为 wiewport 宽度和高度的正交相机。此外,Box2D世界使用此相机。窗口屏幕尺寸为 840 x 490,以便将它们除以 12 和 7 :)。
摄像机跟随主角,所以它的投影矩阵随着摄像机的每次移动而变化。所以我使用batch.setProjectionMatrix(camera.combined)
并绘制我的游戏对象。
但是,如果我需要将鼠标屏幕坐标转换为本地 box2D 坐标怎么办?
有没有办法将坐标从一个投影 maxtrix 转换为另一个?
例如,如果我的相机正在注视屏幕中央的 (0; 0),我将在屏幕坐标中找到 (840/2; 490/2) 的点。反之亦然,从 (420; 245) 到 ..whatever,考虑到相机的移动。