Witaj!
tBane dodał nowy post w wątku: Skalowanie widoku i dopasowanie do ekranu
Witam. Mam funkcję do skalowania widoku w SFML 3.0.2. Funkcja działa w ten sposób, że rozciąga obraz w taki sposób, by zachowane zostały proporcje. (czyli są czarne pasy poza widokiem). Jak to zrobić w Javie libGDx? Obecnie tak skaluje ... czyli nie skaluje w ogóle. 
Kopiuj
void setScreenView(sf::View& view) { float windowRatio = float(window->getSize().x) / float(window->getSize().y); float viewRatio = float(view.getSize().x) / float(view.getSize().y); float sizeX = 1.f; float sizeY = 1.f; float posX = 0.f; float posY = 0.f; if (windowRatio > viewRatio) { sizeX = viewRatio / windowRatio; posX = (1.f - sizeX) / 2.0f; } // wyższe niż widok → paski poziome else { sizeY = windowRatio / viewRatio; posY = (1.f - sizeY) / 2.0f; } view.setViewport(sf::FloatRect(posX, posY, sizeX, sizeY)); window->setView(view); }
Kopiuj
package com.tbane.mysticgems; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.viewport.Viewport; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.Texture; import java.util.Vector; public class Renderer { public static SpriteBatch batch = new SpriteBatch(); public static int VIRTUAL_WIDTH = 720; public static int VIRTUAL_HEIGHT = 1612; public static OrthographicCamera camera; public Viewport viewport; public void create() { camera = new OrthographicCamera(); viewport = new FitViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT, camera); camera.position.set(VIRTUAL_WIDTH / 2f, VIRTUAL_HEIGHT / 2f, 0); camera.update(); batch = new SpriteBatch(); } public void resize(int width, int height) { viewport.update(width, height); camera.position.set(VIRTUAL_WIDTH / 2f, VIRTUAL_HEIGHT / 2f, 0); camera.update(); batch = new SpriteBatch(); } public static void begin() { batch.begin(); } public static void end() { batch.end(); } }
Z poważaniem, 4programmers.net
|