4programmers.net

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.
badView.png

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(); } }  


Zobacz post

Z poważaniem,
4programmers.net

Jeżeli masz problemy z kliknięciem na przycisk "Zobacz post", skopiuj i wklej poniższy link w przeglądarce:

http://4programmers.net/Notification?path=%252FForum%252FJava%252F377216-skalowanie_widoku_i_dopasowanie_do_ekranu%253Fp%253D2010882%2523id2010882