- private float calculateZoomFactor(final int w, final int h) {
- int th = 800 * 600;
- int wh = w * h;
- return 0.5f + (1.0f / th * wh) * 0.5f;
- }
- // Set camera scale and size
- zoomFactor = calculateZoomFactor(getDisplayWidth(), getDisplayHeight());
- zoom = zoomFactor * zoomValue;
- camera.setSize(new Vector2i(getDisplayWidth(), getDisplayHeight()));
- camera.setScale(new Vector3f(zoom));
- // Center camera based on player pos
- float quarterX = (float) getDisplayWidth() / (zoomFactor * 4.0f);
- float quarterY = (float) getDisplayHeight() / (zoomFactor * 4.0f);
- camera.setPosition(new Vector3f(-player.getPos().x + quarterX, -player
- .getPos().y + quarterY, 0.0f));
- camera.update();