bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


libgdx_viewport

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
libgdx_viewport [2026/03/05 23:03]
enric_mieza_sanchez [Movem l'objecte]
libgdx_viewport [2026/03/06 00:05] (actual)
enric_mieza_sanchez [Configuració Viewport bàsica]
Línia 35: Línia 35:
         // pintem background de color         // pintem background de color
         ScreenUtils.clear(0.15f, 0.15f, 0.2f, 1f);         ScreenUtils.clear(0.15f, 0.15f, 0.2f, 1f);
 +        
         // PUNT CLAU: ajustem càmera per traduir resolucions quan pintem         // PUNT CLAU: ajustem càmera per traduir resolucions quan pintem
         viewport.apply();         viewport.apply();
         batch.setProjectionMatrix(viewport.getCamera().combined);         batch.setProjectionMatrix(viewport.getCamera().combined);
 +        
         // pintem!         // pintem!
         batch.begin();         batch.begin();
-        // ...instruccions de dibuix...+        // ...instruccions de dibuix amb "coordenades virtuals"...
         batch.end();         batch.end();
     }     }
Línia 160: Línia 162:
         // projecció viewport, background, etc...         // projecció viewport, background, etc...
         batch.begin();         batch.begin();
-        batch.draw(pilotaTexture,posx,posy,1f,1f);+        batch.draw(pilotaTexture,posx,posy,1f,1f); // tamany pilota = 1x1
         batch.end();         batch.end();
     }     }
Línia 193: Línia 195:
  
 <WRAP info> <WRAP info>
 +**En termes físics**
 +
 En termes de física, les sumes han de ser de la mateixa magnitud, és a dir, a la posició x [metres] no podem sumar-li una velocitat [m/s], sinó que cal sumar-li un desplaçament també en [metres]. En termes de física, les sumes han de ser de la mateixa magnitud, és a dir, a la posició x [metres] no podem sumar-li una velocitat [m/s], sinó que cal sumar-li un desplaçament també en [metres].
  
Línia 213: Línia 217:
 </WRAP> </WRAP>
  
 +\\
 +
 +===== Rebots =====
 +
 +Per poder fer rebotar la pilota a les parets, caldrà tenir descomposta la velocitat en les components X i Y : ''posx'' i ''posy''. Per fer els rebots:
 +  * Canviem el signe (multiplicar per -1) de ''velx'' quan arribem als extrems laterals.
 +  * Canviem el signe (multiplicar per -1) de ''vely'' quan arribem al "sostre" o el "terra".
 +
 +ULL: aquest gràfic té la coordenada Y invertida (moltes interfícies gràfiques tenen l'origen (0,0) a l'extrem superior esquerra, però libGDX ho té a l'extrem inferior esquerre):
 +
 +{{Pilota-rebots.png}}
 +
 +
 +<WRAP todo>
 +Fes els següents exercicis:
 +  - Actualitza també el valor de ''vely'' perquè la pilota es mogui per tota la pantalla.
 +  - Implementa els rebots: introdueix codi per controlar els límits i inverteix el signe de les velocitats x i y com s'ha explicat.
 +  - Rebota bé en els límits? Fes els ajustos adequats perquè reboti de forma correcta.
 +
 +Potser t'interessarà saber que l'objecte ''Viewport'' té diversos mètodes per conèixer la resolució real de la pantalla i altre dades, en particular les que ens interessen per saber l'amplada i alçada de la pantalla en termes de "coordenades virtuals":
 +  viewport.getWorldWidth()
 +  viewport.getWorldHeight()
 +
 +</WRAP>
  
libgdx_viewport.1772751808.txt.gz · Darrera modificació: 2026/03/05 23:03 per enric_mieza_sanchez