Всъщност рисувам част от моята карта с плочки, използвайки мащабиране на камерата (с OrthogonalTiledMapRenderer
на основната ми камера). Камерата е центрирана върху позицията на играча (който винаги е в центъра на екрана) в свят box2d.
// Set camera postion center on player (box2d body) on every update
camera.position.set(player.getBody().getWorldCenter(), 0);
Бих искал да създам миникарта с втора камера. Прост запълнен правоъгълник с точка, която представлява позицията на играча на картата. Така че създадох нова камера:
minimapCamera = new OrthographicCamera(1280, 720); // as my main camera
minimapCamera.zoom = 6; // larger zoom
minimapCamera.position.set(-1280 * 2, 720 * 3, 0); // align bottom right corner
И се опитвам да рисувам форми:
ShapeRenderer sr = new ShapeRenderer();
sr.setAutoShapeType(true);
sr.setProjectionMatrix(minimapCamera.combined);
sr.begin(ShapeType.Filled);
sr.setColor(0.5f, 0.5f, 0.5f, 0.3f);
// minimap rectangle background
sr.rect(0, 0, minimapCamera.viewportWidth, minimapCamera.viewportHeight);
sr.setColor(1f, 0f, 0f, 0.4f);
// player circle point
sr.circle(playerPos.x, playerPos.y, 20);
sr.end();
Но как мога да изчисля позицията на играча playerPos
в цялата подредена карта? И как да нарисувам само част от увеличената карта? (Не искам да рисувам цялата карта, а по-голяма секция от основната ми камера).
РЕДАКТИРАНЕ: Ако искам да използвам отново моята карта с плочки в моята миникарта, как мога да начертая само видима за играча секция в миникартата (в момента цялата карта се изобразява дори ако посоча малък размер на камерата)?