Geração de um Controlador Manual para o Ambiente Virtual
Este aplicativo WebStart será utilizado para criar um socket de comunicação entre o Controlador Manual (cliente) e o ambiente virtual do WorldServer3D (servidor). O Controlador Manual deve criar uma nova criatura artificial, no ambiente do WorldServer3D, e permitir o seu controle por meio do envio de mensagens do Controlador para a criatura. O WorldServer3D disponibiliza alguns comandos úteis para realizar tais ações. Analisando o arquivo Main, do WorldServer3D, pode-se compreender a sintaxe de tais comandos. A seguir, são listados os comandos (mensagens) usados neste projeto:
startGame: Começa o Jogo (Game). A criatura já pode se mover.
shutdown: Encerra a aplicação do servidor.
new <X> <Y> <PITCH>: Cria uma nova criatura na posição definida por X e Y. A variável PITCH define o posicionamento angular da criatura criada.
camera <creature ID>: Liga o sensor visual (câmera) do robô (criatura virtual). A variável ID se refere à criatura que foi criada. Pode haver mais de uma criatura no ambiente virtual.
start <creature ID>: Liga o sistema motor da criatura.
stop <creature ID>: Pára o sistema motor da criatura.
refuel <creature ID>: Abastece a criatura com energia.
setgoTo <creature ID> <Vr> <Vl> <Xdirection> <Ydirection>: A criatura se move na direção do ponto (X,Y). Mas, ela não pára quando atinge esse ponto. A velocidade linear é a média aritmética de Vr e Vl.
O projeto é composto por um Formulário ( ControleManual ) e por uma Classe ( Cliente ). O Formulário gera a parte visual do aplicativo, fornecendo a interface gráfica para o usuário. A Classe é responsável pela comunicação com o Ambiente Virtual, gerando os comandos para controlar a criatura virtual. A figura, a seguir, mostra a tela do WorldServer3D, após uma criatura virtual ter sido criada pelo Controlador Manual:
Formulário ControleManual
A tela do Controlador Manual está exibida na figura acima. Este controlador possui botões que permitem instanciar uma nova criatura, controlá-la, e encerrar o aplicativo do ambiente WorldServer3D. Os comandos (botões) disponibilizados pelo formulário ControleManual estão listados abaixo:
StartGame: Realiza a conexão com o ambiente virtual e instancia uma criatura virtual no ambiente.
Shutdown: Encerra o ambiente virtual.
Up: Move a criatura virtual para a parte superior do ambiente virtual.
Down: Move a criatura virtual para a parte inferior do ambiente virtual.
Right: Move a criatura virtual para a parte direita do ambiente virtual.
Left: Move a criatura virtual para a parte esquerda do ambiente virtual.
Pause: Faz a criatura virtual parar de se mover.
Classe Cliente
Esta classe é responsável pela conexão do cliente com o servidor do Ambiente Virtual, além de possuir métodos para a instanciação de uma criatura virtual e sua movimentação. Esta classe possui os seguintes métodos:
Conectar: Cria um socket de comunicação entre o cliente e o servidor, usando a porta 4011.
StartGame: Envia mensagens para o servidor do Ambiente Virtual, iniciando o game e criando uma criatura virtual. Também habilita a câmera da criatura virtual, além de abastecê-la de energia.
Shutdown: Encerra a aplicação do servidor do Ambiente Virtual.
Up: Usa o comando setgoTo para mover a criatura para a parte superior do ambiente.
Down: Usa o comando setgoTo para mover a criatura para a parte inferior do ambiente.
Right: Usa o comando setgoTo para mover a criatura para a direita do ambiente.
Left: Usa o comando setgoTo para mover a criatura para a esquerda do ambiente.
Pause: Envia o comando stop para parar os motores da criatura virtual.
SendMessage: Envia mensagens do cliente para o servidor do Ambiente Virtual.
Arquivos Disponibilizados:
Código Fonte: controlemanual.rar
Controlador Manual: launch.jnlp