# Conceptos

## Phaser 3

Es uno de los frameworks más populares para crear juegos en html5.

{% hint style="info" %}
Recomiendan los/las pro: si la documentación de Phaser te resulta compleja, te dejo las [notas de Rex](https://rexrainbow.github.io/phaser3-rex-notes/docs/site/), un conocido programador que realiza plug-ins y documentación para varios frameworks de videojuegos.
{% endhint %}

## Logica

Phaser maneja la vista de nuestro juego, creando un canvas que dibuja una y otra vez lo que vemos en la pantalla.

Aunque existen otros métodos para realizar cambios más específicos, las tres principales funciones sobre la que girara nuestro juego son las siguientes:

| Método    | Descripción                                                                                                                      |
| --------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `Preload` | Aquí se pre cargaran los archivos que son necesarios para manejar una escena                                                     |
| `Create`  | Aquí instanciamos entidades, grupos, y agregaremos los eventos.                                                                  |
| `Update`  | Esta función es un loop, aquí dibujaremos nuestras entidades y las funciones que queremos que se repitan en cada tick del juego. |

## Entidades

Las entidades u objetos nos ayudan a abstraer conceptos como jugador, enemigo e incluso un botón.

Estas son las que vamos a crear, si revisas los archivos veras que hay variedad de assets para elegir.

| Nombre       | Descripción                                    |                                                                                                                                 Textura                                                                                                                                 |
| ------------ | ---------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| Player       | Representa al personaje del jugador            | <img src="https://543445267-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lz0yFaj4SSGq1LsCG30%2F-Lz9Vo4pQKgCg38G2fV_%2F-Lz9qMBO_NETwXAC-CTm%2FplayerShip1_blue.png?alt=media&#x26;token=f31a2abe-6a6a-4ff2-b556-b3c08131df65" alt="" data-size="line"> |
| Red Ship     | Representa una nave enemiga                    |     <img src="https://543445267-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lz0yFaj4SSGq1LsCG30%2F-Lz9Vo4pQKgCg38G2fV_%2F-Lz9qxLOzHfQT3xPhbRK%2FenemyRed1.png?alt=media&#x26;token=f6336048-c393-49d6-940c-27eb235f61f7" alt="" data-size="line">    |
| Player Shoot | El láser que se crea cuando el jugador dispara |    <img src="https://543445267-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lz0yFaj4SSGq1LsCG30%2F-Lz9Vo4pQKgCg38G2fV_%2F-Lz9r7Ln-2jxSRNYWjDg%2FlaserBlue01.png?alt=media&#x26;token=f7342f2a-baf1-44b5-b5db-87abf1c2ae24" alt="" data-size="line">   |
