Eventos e mensagens: orquestrando o fluxo do seu jogo

8 min de leitura·Atualizado em 11 de junho de 2026

Programas visuais são orientados a eventos: nada acontece até que algo dispare um script. Dominar os eventos — e principalmente as mensagens entre atores — é o que permite construir jogos com menus, fases, telas de vitória e múltiplos personagens coordenados.

Os eventos básicos

  • Quando iniciar — dispara ao apertar Play. É onde você inicializa variáveis e posiciona atores.
  • Quando tecla pressionada — dispara a cada toque da tecla escolhida. Bom para ações pontuais (pular, atirar); para movimento contínuo prefira checar a tecla dentro de um loop “Sempre”.
  • Quando este ator for clicado — interações de mouse, ótimo para botões.
  • Quando clone iniciar — o ponto de entrada de cada clone criado (veja o tutorial de clones).
💡

Diferença importante: “Quando tecla pressionada” dispara o evento; o sensor “tecla pressionada?” consulta o estado. Para um pulo que não repete enquanto a tecla está segurada, guarde o estado anterior da tecla em uma variável e compare.

Broadcast: a mensagem para todos

O bloco “envie mensagem [nome]” transmite um aviso para o projeto inteiro. Qualquer ator com um script “quando receber [nome]” reage. É o mecanismo ideal para coordenar momentos do jogo:

// no ator Gerente, ao apertar Play:
envie mensagem "iniciar_fase"

// no ator Fase:
quando receber "iniciar_fase":
  construir os tiles da fase

// no ator Música:
quando receber "iniciar_fase":
  tocar trilha sonora

Repare que quem envia não precisa saber quem escuta. Você pode adicionar um novo ator que reage a “iniciar_fase” sem tocar em nenhum script existente — é o mesmo princípio dos eventos em linguagens profissionais.

Padrões úteis com mensagens

  • Game over centralizado: qualquer inimigo que acerte o jogador envia “game_over”; um único ator de interface escuta e mostra a tela final.
  • Troca de fase: “fase_concluida” → o gerador apaga os clones da fase atual e constrói a próxima a partir das listas de dados.
  • Sequência de inicialização: use uma mensagem “construir_fase” depois de preencher as listas, garantindo que os dados existem antes de os clones serem criados.
  • Pause: envie “pausar” e faça os loops principais checarem uma variável global pausado antes de mover qualquer coisa.

No código gerado, cada broadcast vira uma chamada de função que aciona todos os handlers registrados — você pode acompanhar isso no painel Código Gerado para entender como eventos funcionam por dentro.

Pronto para colocar em prática?

Abrir o editor