Variáveis
Você quer ajustar a velocidade do jogador, a vida de um inimigo ou o destino de uma porta no editor, sem abrir o código a cada teste.
Uma variável é um valor com nome que você cria no objeto. No código, ela é um campo comum da classe. Na room, cada instância pode ter o seu próprio valor.
Criar uma variável
Seção intitulada “Criar uma variável”- Clique no objeto em Recursos.
- No Inspetor, na seção Variáveis, clique em + Variável e escolha o tipo.
- Clique no nome (começa como
variavel) e dê o nome que você quer, por exemplovelocidade. - Ao lado do nome, ajuste o valor padrão.
O botão ⋮ no fim da linha troca o Tipo, muda a ordem (Subir, Descer) e Exclui a variável.
| Tipo | O que guarda | No código |
|---|---|---|
| número | Um número com vírgula | float |
| inteiro | Um número inteiro | int |
| sim/não | Verdadeiro ou falso | bool |
| texto | Um texto | std::string |
| cor | Uma cor | Color |
| room, objeto, sprite, som | Um recurso do projeto, escolhido numa lista | std::string (o nome) |
Usar no código
Seção intitulada “Usar no código”A classe do objeto precisa da linha BRASA_VARS, logo depois de public:. O Novo objeto já cria o .hpp com ela:
class Player : public brasa::Entity {public: BRASA_VARS(Player)
void onUpdate() override;};Daí em diante, a variável é um campo como qualquer outro:
void Player::onUpdate() { x += axis("esquerda", "direita") * velocidade;}Não declare na classe um campo com o mesmo nome: o BRASA_VARS já faz isso.
Um valor diferente em cada instância
Seção intitulada “Um valor diferente em cada instância”- Abra a room e clique na instância.
- No Inspetor, em Valores próprios, marque a caixinha ao lado da variável.
- Mude o valor.
Desmarcada, a instância usa o valor padrão do objeto. Um exemplo: uma bandeira com a variável destino, do tipo room. Cada bandeira da fase aponta para uma room diferente, e o código é um só:
onTouchStart<Player>([this](Player&) { goTo(destino); });O que recompila
Seção intitulada “O que recompila”- Mudar um valor (o padrão ou o de uma instância) não recompila nada: aperte Play.
- Criar, renomear, excluir ou trocar o tipo de uma variável recompila o jogo no próximo Play.
Os valores já estão no objeto quando o onSpawn roda.
Renomear e excluir
Seção intitulada “Renomear e excluir”- Ao renomear, o editor atualiza as instâncias de todas as rooms e pergunta se troca o nome também no
.hppe no.cppdo objeto. Outros arquivos que usam a variável ficam por sua conta. - Ao excluir, as instâncias perdem o valor próprio, e o código que usava a variável deixa de compilar até você tirá-la de lá.
- Renomear uma room, um objeto, um sprite ou um som atualiza as variáveis que apontam para ele.
Se aparecer um aviso amarelo
Seção intitulada “Se aparecer um aviso amarelo”O aviso diz que a classe não tem BRASA_VARS: as variáveis ficam salvas, mas os valores não chegam ao jogo. Clique em Inserir BRASA_VARS no .hpp e o editor escreve a linha para você.
Num objeto antigo, com a classe dentro do .cpp, mova a classe para um .hpp primeiro. A classe também precisa ficar fora de namespace.
Veja também
Seção intitulada “Veja também”- Inspetor: as seções do objeto e da instância.
- Objetos e eventos: a classe do objeto.
