Fix scaling on mobile
All checks were successful
Build & deploy web version / Build WebAssembly & deploy (push) Successful in 1m0s

This commit is contained in:
Andras Schmelczer 2026-08-10 08:16:56 +01:00
commit ba2d649de7

View file

@ -55,10 +55,18 @@ static void initRenderMap() {
*
*/
static void calculateRowsAndColumns() {
magnification = (float) screen -> w / 2 / sensorSize;
columns = 2 * cameraPosition.z * sensorSize / focalLength;
/* A szenzor hosszabb oldala mindig a képernyő hosszabb oldalára képződik le. Fekvő
* képernyőn ez a szélesség, állón viszont a magasság: egy telefon képernyőjén a
* szélességhez igazodva a pályának majdnem a kétszerese férne ki függőlegesen, amitől
* a kockák aprók lennének, a játékos feje fölött pedig végtelen üres ég maradna.
* Így viszont fekvőn és állón is ugyanakkorák a kockák, csak más alakú részt látunk. */
float longerScreenSide = larger(screen -> w, screen -> h);
magnification = longerScreenSide / 2 / sensorSize;
float longerSideInMeters = 2 * cameraPosition.z * sensorSize / focalLength;
//hogy a négyzet négyzet is maradjon
rows = (float)screen -> h / screen -> w * columns;
columns = screen -> w / longerScreenSide * longerSideInMeters;
rows = screen -> h / longerScreenSide * longerSideInMeters;
if(renderMap == NULL) initRenderMap();
@ -117,6 +125,11 @@ int getColumns() {
return columns;
}
///Visszaadja, hogy hány sor látszik a pályából.
int getRows() {
return rows;
}
/** \brief A kamera dollyzását végzi, a kamerát mozgatja
* A dolly állását staticban tárolja, ezért új dolly eseteén először egy restart = true-val kell meghívni,
* \param ms eltelt idő