Multiplayer Tutorial 2: Sala de Chat (Chat Room)

1

Index

Tagged

Stats

9,608 visits, 14,200 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 5 Aug, 2015. Last updated 25 Feb, 2019

Layout de Login

O primeiro layout Login não precisa de muita explicação. Essencialmente, é apenas uma caixa de texto com um botão Join. O nome introduzido é armazenado em uma variável global e nenhuma conexão acontecerá até o próximo layout.

Os eventos para o layout concentram-se em focar a caixa de texto, garantindo que você não possa se logar antes de digitar um nome, e armazena o nome inserido na variável global MyUserName neste momento. Também verifica a condição Is supported no objeto Multiplayer - nem todos os navegadores suportam WebRTC ainda, e devemos informar ao usuário se ele irá ou não funcionar para eles.

Layout de Chat

O layout de Chat conecta-se com a condição On start of layout, usando o nome armazenado na variável global MyUserName.

Os objetos no layout são projetados para imitar um aplicativo comum de sala de bate-papo: o objeto principal (main) ChatLog está onde as mensagens de chat devem aparecer, o objeto Peerlist fica à direita, listando os nomes das outras pessoas na sala e há ainda uma caixa de texto (text box) com um botão Send na parte inferior para enviar as mensagens. (Você também pode pressionar "Enter" para enviar uma mensagem.)

Os eventos para este layout lidarão com:

- Conectar-se ao servidor de sinalização e logar-se

- Juntar-se à sala de bate-papo

- Listar quem mais está na sala e atualizar esta lista à medida que as pessoas entram e saem

- Mostrar as mensagens recebidas

- Enviar quaisquer mensagens de chat postadas localmente

- Lidar com quaisquer erros ou desconexões que ocorram

Iremos começar a olhar os eventos reais na próxima página do tutorial.

Eventos do Chat

No topo da folha de evento estão algumas variáveis globais:

É uma boa prática manter constantes globais para o nome do jogo, da instância e da sala, caso eles não precisem mudar. Isto significa que haverá apenas um lugar onde precisaremos atualizar nosso projeto se quisermos alterar qualquer um deles. Neste caso, todos os três serão sempre os mesmos: todos os que usarem o aplicativo se juntarão à mesma sala de bate-papo. Se nós mudarmos qualquer um deles, o usuário irá para uma sala de bate-papo diferente. No entanto, se quiséssemos fazer salas de chat separadas seria mais sensato colocá-las em uma sala com sinalização diferente: instâncias de jogo são destinadas a diferentes versões do mesmo app, e o nome do jogo sempre deve ser o mesmo para o mesmo projeto.

Grupo Chat Log (Histórico)

Este grupo tem a simples função de adicionar uma nova linha de texto para o log de bate-papo, e, em seguida, envia-la para o final da lista de mensagens. Uma vez que temos que atualizar o log de bate-papo em vários lugares, faz sentido termos uma única função para fazer isso em vez de repetir as ações diversas vezes. Também, depois de várias mensagens de chat, o conteúdo poderá extrapolar a parte inferior do objeto (ChatLog), por isso nós rolaremos as mensagens ao chegar no final deste, para que as mensagens mais recentes fiquem à vista.

  • 0 Comments

Want to leave a comment? Login or Register an account!