bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


libgdx_stage

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ó

Següent revisió
Revisió prèvia
libgdx_stage [2025/02/17 16:04]
enric_mieza_sanchez creat
libgdx_stage [2026/04/08 15:42] (actual)
enric_mieza_sanchez
Línia 1: Línia 1:
 ====== libGDX: widgets clàssics ====== ====== libGDX: widgets clàssics ======
 +
 +libGDX treballa principalment amb l'objecte SpriteBatch renderitzant bitmaps. Però disposa també d'alguns //widgets// "clàssics" com Button , TextView , etc. No són el cas d'ús més habitual, però per facilitar la seva creació existeix la [[https://libgdx.com/wiki/graphics/2d/scene2d/scene2d-ui|biblioteca Scene2D UI]].
 +
 +{{tag> #Dam #DamMp08 #DamMp08Uf3 #DamMp08Uf03 #DamMp08Uf3 Android mobile java }}
 +
  
  
Línia 16: Línia 21:
  
 <file java Main.java> <file java Main.java>
-package com.myuser.myapp;+package com.myuser.scenegdx;
  
-import com.badlogic.gdx.ApplicationAdapter; 
-import com.badlogic.gdx.Gdx; 
-import com.badlogic.gdx.graphics.GL20; 
-import com.badlogic.gdx.graphics.Texture; 
-import com.badlogic.gdx.graphics.g2d.SpriteBatch; 
-import com.badlogic.gdx.utils.ScreenUtils; 
 import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.ApplicationAdapter;
 import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.GL20;
 import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.BitmapFont;
 +import com.badlogic.gdx.scenes.scene2d.InputEvent;
 import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.Stage;
-import com.badlogic.gdx.scenes.scene2d.ui.Button; 
 import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Label;
 import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.badlogic.gdx.scenes.scene2d.ui.Skin;
 import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
-import com.badlogic.gdx.utils.viewport.ScreenViewport;+import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; 
 +import com.badlogic.gdx.utils.viewport.FitViewport;
  
 public class Main extends ApplicationAdapter { public class Main extends ApplicationAdapter {
     private Stage stage;     private Stage stage;
     private Skin skin;     private Skin skin;
 +    public FitViewport viewport;
     @Override     @Override
     public void create() {     public void create() {
         // Crear un Stage i un Skin         // Crear un Stage i un Skin
-        stage = new Stage(new ScreenViewport());+        viewport = new FitViewport(8,5); 
 +        stage = new Stage(viewport);
         skin = new Skin(Gdx.files.internal("uiskin.json")); // Carregar un Skin per defecte         skin = new Skin(Gdx.files.internal("uiskin.json")); // Carregar un Skin per defecte
 +        float escala = viewport.getWorldHeight() / Gdx.graphics.getHeight();
  
-        // Crear un Label (TextView)+        // Ajustem paràmetres per a la font
         Label.LabelStyle labelStyle = new Label.LabelStyle();         Label.LabelStyle labelStyle = new Label.LabelStyle();
         labelStyle.font = new BitmapFont(); // Font per defecte         labelStyle.font = new BitmapFont(); // Font per defecte
 +        labelStyle.font.setUseIntegerPositions(false);
 +        labelStyle.font.getData().setScale( escala );
 +
 +        // Creem label (TextView)
         Label label = new Label("Hola, això és un TextView", labelStyle);         Label label = new Label("Hola, això és un TextView", labelStyle);
-        label.setPosition(100400); // Posició del Label+        label.setPosition(11); // Posició del Label
  
         // Crear un Button         // Crear un Button
-        Button button = new TextButton("Clica'm!", skin); +        TextButton button = new TextButton("Clica el botonet!", skin ); 
-        button.setPosition(100300); // Posició del Button +        button.setPosition(22); // Posició del Button 
-        button.setSize(20050); // Mida del Button+        button.setTransform(true); 
 +        button.setScale( 2*escala ); 
 +        button.addListener(new ClickListener() { 
 +            @Override 
 +            public void clicked(InputEvent event, float xfloat y) { 
 +                System.out.println("Botó clicat!"); 
 +            } 
 +        });
  
         // Afegir els actors al Stage         // Afegir els actors al Stage
Línia 81: Línia 94:
     }     }
 } }
- 
 </file> </file>
 +
 +<WRAP todo>
 +A partir de l'exemple, fes una tasklist (només afegir tasques).
 +</WRAP>
  
libgdx_stage.1739808259.txt.gz · Darrera modificació: 2025/02/17 16:04 per enric_mieza_sanchez