Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
jocs_libgdx [2023/05/16 09:40] enric_mieza_sanchez [Primer joc: Drops] |
jocs_libgdx [2024/04/12 11:52] (actual) enric_mieza_sanchez [Desenvolupament de jocs amb libGDX] |
||
---|---|---|---|
Línia 3: | Línia 3: | ||
En aquest article utilitzarem una llibreria específica, | En aquest article utilitzarem una llibreria específica, | ||
- | + | {{ libgdx.png? | |
{{tag> #FpInfor #Dam #DamMp08 #DamMp08Uf3 # | {{tag> #FpInfor #Dam #DamMp08 #DamMp08Uf3 # | ||
Línia 14: | Línia 13: | ||
- [[https:// | - [[https:// | ||
- | {{ drop-game.jpeg |Joc Drop del tutorial | + | \\ |
+ | |||
+ | ===== Instal·lació ===== | ||
+ | Necessites tenir instal·lat Android Studio. | ||
+ | |||
+ | Crea el projecte amb l' | ||
+ | |||
+ | ==== Troubleshooting ==== | ||
+ | Si t' | ||
+ | - Eliminar la compilació de la plataforma iOS. | ||
+ | - Editar '' | ||
+ | buildToolsVersion " | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== Definicions ===== | ||
+ | Objectes principals del // | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | \\ | ||
===== Primer joc: Drops ===== | ===== Primer joc: Drops ===== | ||
- | {{ drop-game.jpeg | + | {{ drop-game.jpeg }} |
<WRAP todo> | <WRAP todo> | ||
Línia 350: | Línia 380: | ||
* Ús WebSockets per comunicacions a temps real. | * Ús WebSockets per comunicacions a temps real. | ||
</ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== Ortographic Camera ===== | ||
+ | Tal i com explica el tutorial del Drop Game, la '' | ||
+ | |||
+ | Les operacions que realitzarà la càmera seran: | ||
+ | Coordenades virtuals -> project -> Coordenades reals (// | ||
+ | Coordenades virtuals <- unproject <- Coordenades reals (// | ||
+ | |||
+ | Posant que volem una pantalla de 800x480 | ||
+ | |||
+ | <file java DesktopLauncher.java> | ||
+ | public class DesktopLauncher { | ||
+ | public static void main (String[] arg) { | ||
+ | Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration(); | ||
+ | config.setWindowedMode(480, | ||
+ | </ | ||
+ | |||
+ | A l' | ||
+ | |||
+ | <code java> | ||
+ | public final int GAME_WIDTH = 800; | ||
+ | public final int GAME_HEIGHT = 480; | ||
+ | |||
+ | public void create() { | ||
+ | camera = new OrthographicCamera(); | ||
+ | camera.setToOrtho(false, | ||
+ | | ||
+ | //... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Per fer que el '' | ||
+ | |||
+ | <code java> | ||
+ | public void render() { | ||
+ | camera.update(); | ||
+ | spriteBatch.setProjectionMatrix(camera.combined); | ||
+ | | ||
+ | //... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Si estem capturant entrades de la pantalla, caldrà la operació contrària: '' | ||
+ | |||
+ | <code java> | ||
+ | protected int virtual_joystick_control() { | ||
+ | // iterar per multitouch | ||
+ | // cada " | ||
+ | for(int i=0; | ||
+ | if (Gdx.input.isTouched(i)) { | ||
+ | Vector3 touchPos = new Vector3(); | ||
+ | touchPos.set(Gdx.input.getX(i), | ||
+ | // traducció de coordenades reals (depen del dispositiu) a 800x480 | ||
+ | game.camera.unproject(touchPos); | ||
+ | // les dades convertides s' | ||
+ | //... | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== Actors, Scenes i Skins ===== | ||
+ | Per fer controls avançats com Buttons, Dialogs, etc. hem de tenir en compte que son elements tant de renderització com de entrada de dades, i es tracten de forma especial. En caldrà emprar els objectes '' | ||
+ | |||
+ | Algunes referències: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | IMPORTANT: perquè funcioni el skin cal descarregar tots els arxius a la carepta assets. | ||
\\ | \\ | ||