Variables
Quieres ajustar la velocidad del jugador, la vida de un enemigo o el destino de una puerta en el editor, sin abrir el código en cada prueba.
Una variable es un valor con nombre que creas en el objeto. En el código, es un campo común de la clase. En la room, cada instancia puede tener su propio valor.
Crear una variable
Sección titulada «Crear una variable»- Haz clic en el objeto en Recursos.
- En el Inspector, en la sección Variáveis (variables), haz clic en + Variável y elige el tipo.
- Haz clic en el nombre (empieza como
variavel) y escribe el nombre que quieres, por ejemplovelocidade(velocidad). - Al lado del nombre, ajusta el valor por defecto.
El botón ⋮ al final de la fila cambia el Tipo, cambia el orden (Subir, Descer, bajar) y elimina la variable (Excluir).
| Tipo | Qué guarda | En el código |
|---|---|---|
| número | Un número con decimales | float |
| inteiro (entero) | Un número entero | int |
| sim/não (sí/no) | Verdadero o falso | bool |
| texto | Un texto | std::string |
| cor (color) | Un color | Color |
| room, objeto, sprite, som | Un recurso del proyecto, elegido en una lista | std::string (el nombre) |
Usarla en el código
Sección titulada «Usarla en el código»La clase del objeto necesita la línea BRASA_VARS, justo después de public:. Novo objeto (nuevo objeto) ya crea el .hpp con ella:
class Player : public brasa::Entity {public: BRASA_VARS(Player)
void onUpdate() override;};De ahí en adelante, la variable es un campo como cualquier otro:
void Player::onUpdate() { x += axis("esquerda", "direita") * velocidade;}No declares en la clase un campo con el mismo nombre: BRASA_VARS ya lo hace.
Un valor distinto en cada instancia
Sección titulada «Un valor distinto en cada instancia»- Abre la room y haz clic en la instancia.
- En el Inspector, en Valores próprios (valores propios), marca la casilla al lado de la variable.
- Cambia el valor.
Desmarcada, la instancia usa el valor por defecto del objeto. Un ejemplo: una bandera con la variable destino, del tipo room. Cada bandera del nivel apunta a una room distinta, y el código es uno solo:
onTouchStart<Player>([this](Player&) { goTo(destino); });Qué se recompila
Sección titulada «Qué se recompila»- Cambiar un valor (el valor por defecto o el de una instancia) no recompila nada: pulsa Play.
- Crear, renombrar, eliminar o cambiar el tipo de una variable recompila el juego en el próximo Play.
Los valores ya están en el objeto cuando corre el onSpawn.
Renombrar y eliminar
Sección titulada «Renombrar y eliminar»- Al renombrar, el editor actualiza las instancias de todas las rooms y pregunta si cambia el nombre también en el
.hppy en el.cppdel objeto. Los demás archivos que usan la variable quedan por tu cuenta. - Al eliminar, las instancias pierden su valor propio, y el código que usaba la variable deja de compilar hasta que la quites de ahí.
- Renombrar una room, un objeto, un sprite o un sonido actualiza las variables que apuntan a él.
Si aparece un aviso amarillo
Sección titulada «Si aparece un aviso amarillo»El aviso dice que la clase no tiene BRASA_VARS: las variables quedan guardadas, pero los valores no llegan al juego. Haz clic en Inserir BRASA_VARS no .hpp (insertar BRASA_VARS en el .hpp) y el editor escribe la línea por ti.
En un objeto antiguo, con la clase dentro del .cpp, mueve primero la clase a un .hpp. La clase también tiene que quedar fuera de namespace.
Mira también
Sección titulada «Mira también»- Inspector: las secciones del objeto y de la instancia.
- Objetos y eventos: la clase del objeto.
