Desenvolvimento do recarregador
From TheUbberCannon
Inicialmente foi o projeto do canhão incluía um sistema de recarregamento de projéteis automático. Este sistema foi abandonado em favor da simplicidade, já que não iriamos ter tempo ábil para concluir esta parte.
O sistema de recarregamento implementado possui algumas funções em software para gerenciar uma recarga manual, funciona da seguinte maneira:
1 - Após efetuar um disparo o canhão se posiciona totalmente na vertical (apontando para cima) de forma a possibilitar que uma pessoa insira um novo projétil. Nesta fase, por segurança, todos os comandos de disparo e posicionamento do canhão não são executados mas são aceitos pelo canhão.
2 - O canhão conta com um botão de segurança que serve para finalizar a recarga. Após a inserção de um novo projétil este botão deverá ser pressionado para que o canhão seja liberado para executar movimentações ou o disparo.
Enquanto o canhão se encontra bloqueado (em recarga) são aceitos novos comandos de movimentação e disparo, desta forma, após liberado, o canhão irá se movimentar para a sua última posição antes da recarga ou para a última posição enviada enquanto em recarga. Se um comando de disparo for efetuado enquanto o canhão estiver bloqueado para recarga, após a recarga ele irá se movimentar para sua última posição válida ou para uma posição enviada previamente e em seguida efetuar o disparo.
Para implementar este mecanismo foi adicionado um novo estado no canhão (na classe Canhao).