| Linha 104: | Linha 104: | ||
**Gatilho O jogador escolhe uma opção do menu | **Gatilho O jogador escolhe uma opção do menu | ||
**Casos Incluídos Desenha na Tela, Lê entradas de Menu, Inicializa o jogo | **Casos Incluídos Desenha na Tela, Lê entradas de Menu, Inicializa o jogo | ||
**Fluxo principal 1 Desenha na tela (Includes "Desenha na Tela") | **Fluxo principal | ||
** 2 Checa Input (Includes "Lê entradas de Menu") | *** 1 Desenha na tela (Includes "Desenha na Tela") | ||
** 3 O jogador escolhe uma opção do menu | *** 2 Checa Input (Includes "Lê entradas de Menu") | ||
** 4 O jogador escolhe a opção de jogar | *** 3 O jogador escolhe uma opção do menu | ||
** 5 Inicializa as variáveis do jogo (Includes "Inicializa o jogo") | *** 4 O jogador escolhe a opção de jogar | ||
** 6 O jogo começa (Extends "Loop Principal do Jogo") | *** 5 Inicializa as variáveis do jogo (Includes "Inicializa o jogo") | ||
*** 6 O jogo começa (Extends "Loop Principal do Jogo") | |||
**Exceções | **Exceções | ||
** 2.1.1 O jogador escolhe a opção de Highscores | *** 2.1.1 O jogador escolhe a opção de Highscores | ||
** 2.1.2 Mostra as pontuações (Extends "Highscores") | *** 2.1.2 Mostra as pontuações (Extends "Highscores") | ||
** 2.2.1 O jogador escolhe a opção de Sair do Jogo | *** 2.2.1 O jogador escolhe a opção de Sair do Jogo | ||
** 2.2.2 Sai do Jogo | *** 2.2.2 Sai do Jogo | ||
| Linha 127: | Linha 128: | ||
**Gatilho A função é Chamada | **Gatilho A função é Chamada | ||
**Casos Incluídos N/A | **Casos Incluídos N/A | ||
**Fluxo principal | **Fluxo principal | ||
** 2. Desenha o | *** 1. Desenha o Menu na Tela | ||
*** 2. Desenha o Realce da Opção Selecionada | |||
**Exceções | **Exceções | ||
** N/A | *** N/A | ||
| Linha 143: | Linha 145: | ||
**Gatilho A função é Chamada | **Gatilho A função é Chamada | ||
**Casos Incluídos N/A | **Casos Incluídos N/A | ||
**Fluxo principal | **Fluxo principal | ||
** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado | *** 1. Espera o Jogador Apertar algum botão que é aceito | ||
*** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado | |||
**Exceções | **Exceções | ||
** N/A | *** N/A | ||
| Linha 159: | Linha 162: | ||
**Gatilho A Condição de Saída do Jogo é Verdadeira | **Gatilho A Condição de Saída do Jogo é Verdadeira | ||
**Casos Incluídos N/A | **Casos Incluídos N/A | ||
**Fluxo principal | **Fluxo principal | ||
*** 1. Fecha e finaliza o Programa | |||
**Exceções | **Exceções | ||
** N/A | *** N/A | ||
| Linha 174: | Linha 178: | ||
**Gatilho O jogador selecionar a opção de jogar do menu principal | **Gatilho O jogador selecionar a opção de jogar do menu principal | ||
**Casos Incluídos N/A | **Casos Incluídos N/A | ||
**Fluxo principal | **Fluxo principal | ||
** 2. Inicializa as listas de balas e inimigos | *** 1. Inicializa a classe do jogador | ||
*** 2. Inicializa as listas de balas e inimigos | |||
**Exceções | **Exceções | ||
** N/A | *** N/A | ||
| Linha 189: | Linha 194: | ||
**Gatilho O jogador inciar um jogo ou despausar um já inicializado | **Gatilho O jogador inciar um jogo ou despausar um já inicializado | ||
**Casos Incluídos Desenha na Tela, Lê Entradas de Jogo, Checa Impacto, Atualiza Estados, Reproduz Sons | **Casos Incluídos Desenha na Tela, Lê Entradas de Jogo, Checa Impacto, Atualiza Estados, Reproduz Sons | ||
**Fluxo principal | **Fluxo principal | ||
** 2 Checa Input (Includes "Lê entradas de Jogo") | *** 1 Desenha na tela (Includes "Desenha na Tela") | ||
** 3 Checa Impacto (Includes "Checa Impacto") | *** 2 Checa Input (Includes "Lê entradas de Jogo") | ||
** 4 Atualiza os estados do Jogo (Includes "Atualiza Estados") | *** 3 Checa Impacto (Includes "Checa Impacto") | ||
** 5 Reproduz Sons (Includes "Reproduz Sons") | *** 4 Atualiza os estados do Jogo (Includes "Atualiza Estados") | ||
** 1. | *** 5 Reproduz Sons (Includes "Reproduz Sons") | ||
*** 1. | |||
**Exceções | **Exceções | ||
** 2.1 O jogo foi pausado (Extends "Pausar") | *** 2.1 O jogo foi pausado (Extends "Pausar") | ||
** 4.1 O jogador está sem vidas (Extends "Game Over") | *** 4.1 O jogador está sem vidas (Extends "Game Over") | ||
| Linha 211: | Linha 217: | ||
**Gatilho A função é Chamada | **Gatilho A função é Chamada | ||
**Casos Incluídos N/A | **Casos Incluídos N/A | ||
**Fluxo principal | **Fluxo principal | ||
** 2. Altera os estados do Jogador de Acordo com o Botão que foi apertado | *** 1. Espera o Jogador Apertar algum botão que é aceito | ||
*** 2. Altera os estados do Jogador de Acordo com o Botão que foi apertado | |||
**Exceções | **Exceções | ||
** N/A | *** N/A | ||
| Linha 227: | Linha 234: | ||
**Gatilho A função é chamada | **Gatilho A função é chamada | ||
**Casos Incluídos | **Casos Incluídos | ||
**Fluxo principal | **Fluxo principal | ||
** 2. Checa se algum dos inimigos da lista de inimigos colide com alguma bala da lista de balas | *** 1. Checa se algum dos inimigos da lista de inimigos colide com o jogador | ||
*** 2. Checa se algum dos inimigos da lista de inimigos colide com alguma bala da lista de balas | |||
**Exceções | **Exceções | ||
** 1.1 Algum inimigo Colide com o jogador | *** 1.1 Algum inimigo Colide com o jogador | ||
** 1.2 O jogador perde uma vida, dá ao jogador um tempo de imunidade | *** 1.2 O jogador perde uma vida, dá ao jogador um tempo de imunidade | ||
** 1.3 -> 1. | *** 1.3 -> 1. | ||
** 2.1 Algum inimigo Colide com alguma bala | *** 2.1 Algum inimigo Colide com alguma bala | ||
** 2.2 Destrói a bala e o inimigo, aumenta a pontuação do jogador | *** 2.2 Destrói a bala e o inimigo, aumenta a pontuação do jogador | ||
** 2.3 -> 2. | *** 2.3 -> 2. | ||
Nome do caso de uso Atualiza Estados | *Nome do caso de uso Atualiza Estados | ||
Alvo no contexto O jogo atualiza os demais estados envolvidos no jogo | **Alvo no contexto O jogo atualiza os demais estados envolvidos no jogo | ||
Precondições Estar no Jogo | **Precondições Estar no Jogo | ||
Condição de sucesso Os estados são atualizados | **Condição de sucesso Os estados são atualizados | ||
Condição de falha Os estados não são atualizados | **Condição de falha Os estados não são atualizados | ||
Ator primário N/A | **Ator primário N/A | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A função é chamada | **Gatilho A função é chamada | ||
Casos Incluídos | **Casos Incluídos | ||
Fluxo principal | **Fluxo principal | ||
*** 1. Atualiza as posições das balas da lista de balas | |||
*** 2. Atualiza as posições dos inimigos da lista de inimigos | |||
Exceções | *** 3. Verifica os estados do jogador | ||
**Exceções | |||
*** N/A | |||
Nome do caso de uso Desenha na Tela (Jogo) | *Nome do caso de uso Desenha na Tela (Jogo) | ||
Alvo no contexto Desenha o Jogo na Tela | **Alvo no contexto Desenha o Jogo na Tela | ||
Precondições Estar no Jogo | **Precondições Estar no Jogo | ||
Condição de sucesso O Jogo é desenhado | **Condição de sucesso O Jogo é desenhado | ||
Condição de falha O Jogo não é desenhado | **Condição de falha O Jogo não é desenhado | ||
Ator primário N/A | **Ator primário N/A | ||
Ator secundário Jogador, Balas, Inimigos | **Ator secundário Jogador, Balas, Inimigos | ||
Gatilho A função é Chamada | **Gatilho A função é Chamada | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo | **Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo | ||
** 2. Desenha as balas da lista de balas | |||
** 3. Desenha os inimigos da lista de inimigos | |||
Exceções | **Exceções | ||
** N/A | |||
Nome do caso de uso Reproduz Sons | *Nome do caso de uso Reproduz Sons | ||
Alvo no contexto Reproduz a música de fundo e os sons do jogo | **Alvo no contexto Reproduz a música de fundo e os sons do jogo | ||
Precondições Estar no Jogo, Ter tido alguma colisão ou alguma bala ser disparada | **Precondições Estar no Jogo, Ter tido alguma colisão ou alguma bala ser disparada | ||
Condição de sucesso Os sons são reproduzidos | **Condição de sucesso Os sons são reproduzidos | ||
Condição de falha N/A | **Condição de falha N/A | ||
Ator primário N/A | **Ator primário N/A | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A função ser chamada OU houve alguma colisão OU houve algum disparo | **Gatilho A função ser chamada OU houve alguma colisão OU houve algum disparo | ||
Casos Incluídos | **Casos Incluídos | ||
Fluxo principal 1. Houver alguma colisão? | **Fluxo principal 1. Houver alguma colisão? | ||
** 2. Houve algum disparo? | |||
** 3. Reproduz Música de fundo. | |||
Exceções | **Exceções | ||
** 1.1 Houve, reproduz som da colisão | |||
** 2.1 Houve, reproduz som do disparo | |||
Nome do caso de uso Pausar | *Nome do caso de uso Pausar | ||
Alvo no contexto O jogador selecionou a opção de jogar do menu ou despausou o jogo | **Alvo no contexto O jogador selecionou a opção de jogar do menu ou despausou o jogo | ||
Precondições O jogador ter inicializado o jogo | **Precondições O jogador ter inicializado o jogo | ||
Condição de sucesso O jogador Volta ao jogo | **Condição de sucesso O jogador Volta ao jogo | ||
Condição de falha O jogador Sai do jogo | **Condição de falha O jogador Sai do jogo | ||
Ator primário O jogador | **Ator primário O jogador | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho O jogador pausa o jogo | **Gatilho O jogador pausa o jogo | ||
Casos Incluídos Desenha na Tela, Lê entradas de Pause Game | **Casos Incluídos Desenha na Tela, Lê entradas de Pause Game | ||
Fluxo principal 1 Desenha na tela (Includes "Desenha na Tela") | **Fluxo principal 1 Desenha na tela (Includes "Desenha na Tela") | ||
** 2 Checa Input (Includes "Lê entradas de Pause Game") | |||
** 3 O jogador escolhe uma opção do menu | |||
** 4 O jogador escolhe a opção de voltar ao jogo | |||
** 5 O jogo recomeça (Extends "Loop Principal do Jogo") | |||
Exceções | **Exceções | ||
** 2.1.1 O jogador escolhe a opção de sair do jogo | |||
** 2.1.2 Volta ao menu (Extends "Menu Principal") | |||
Nome do caso de uso Lê entradas de Pause | *Nome do caso de uso Lê entradas de Pause | ||
Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Pausa | **Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Pausa | ||
Precondições O Jogo estar Pausado | **Precondições O Jogo estar Pausado | ||
Condição de sucesso O Jogador pressiona alguma entrada que é aceita | **Condição de sucesso O Jogador pressiona alguma entrada que é aceita | ||
Condição de falha N/A | **Condição de falha N/A | ||
Ator primário Jogador | **Ator primário Jogador | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A função é Chamada | **Gatilho A função é Chamada | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito | **Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito | ||
** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado | |||
Exceções | **Exceções | ||
** N/A | |||
Nome do caso de uso Desenha na Tela (Pausar) | *Nome do caso de uso Desenha na Tela (Pausar) | ||
Alvo no contexto Desenha o Jogo na Tela | **Alvo no contexto Desenha o Jogo na Tela | ||
Precondições O Jogo estar Pausado | **Precondições O Jogo estar Pausado | ||
Condição de sucesso O Jogo e o menu de pause são desenhados | **Condição de sucesso O Jogo e o menu de pause são desenhados | ||
Condição de falha O Jogo e o menu de pause não são é desenhado | **Condição de falha O Jogo e o menu de pause não são é desenhado | ||
Ator primário N/A | **Ator primário N/A | ||
Ator secundário Jogador, Balas, Inimigos | **Ator secundário Jogador, Balas, Inimigos | ||
Gatilho A função é Chamada | **Gatilho A função é Chamada | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo | **Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo | ||
** 2. Desenha as balas da lista de balas | |||
** 3. Desenha os inimigos da lista de inimigos | |||
** 4. Desenha o Menu de pause | |||
** 5. Desenha o realçe da opção selecionada | |||
Exceções | **Exceções | ||
** N/A | |||
Nome do caso de uso Retorna ao Jogo | *Nome do caso de uso Retorna ao Jogo | ||
Alvo no contexto O Jogador está despausando o jogo | **Alvo no contexto O Jogador está despausando o jogo | ||
Precondições O Jogador Estar no menu de jogo pausado | **Precondições O Jogador Estar no menu de jogo pausado | ||
Condição de sucesso O jogo continua | **Condição de sucesso O jogo continua | ||
Condição de falha N/A | **Condição de falha N/A | ||
Ator primário N/A | **Ator primário N/A | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A Condição de pausa é falsa | **Gatilho A Condição de pausa é falsa | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal 1. Retorna ao jogo | **Fluxo principal 1. Retorna ao jogo | ||
Exceções | **Exceções | ||
** N/A | |||
Nome do caso de uso Voltar ao Menu Principal | *Nome do caso de uso Voltar ao Menu Principal | ||
Alvo no contexto O Jogador está saindo do jogo e indo para o menu principal | **Alvo no contexto O Jogador está saindo do jogo e indo para o menu principal | ||
Precondições O Jogador Estar no menu de jogo pausado | **Precondições O Jogador Estar no menu de jogo pausado | ||
Condição de sucesso O jogo cessa e abre-se o menu principal | **Condição de sucesso O jogo cessa e abre-se o menu principal | ||
Condição de falha N/A | **Condição de falha N/A | ||
Ator primário N/A | **Ator primário N/A | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A Condição de voltar ao menu é verdadeira | **Gatilho A Condição de voltar ao menu é verdadeira | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal 1. Retorna ao menu principal | **Fluxo principal 1. Retorna ao menu principal | ||
Exceções | **Exceções | ||
** N/A | |||
Nome do caso de uso Game Over | *Nome do caso de uso Game Over | ||
Alvo no contexto O Jogador Morreu no Jogo | **Alvo no contexto O Jogador Morreu no Jogo | ||
Precondições O jogador deveria estar jogando e perdeu todas suas vidas | **Precondições O jogador deveria estar jogando e perdeu todas suas vidas | ||
Condição de sucesso O Jogador Tem sua pontuação salva | **Condição de sucesso O Jogador Tem sua pontuação salva | ||
Condição de falha N/A | **Condição de falha N/A | ||
Ator primário Jogador | **Ator primário Jogador | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho O Jogador Morre | **Gatilho O Jogador Morre | ||
Casos Incluídos Desenha na Tela, Lê Entradas de Game Over, Carregar Jogos Salvos, Calcular Onde a Nova Pontuação Entra, Salvar | **Casos Incluídos Desenha na Tela, Lê Entradas de Game Over, Carregar Jogos Salvos, Calcular Onde a Nova Pontuação Entra, Salvar | ||
Fluxo principal 1. Desenha na Tela (Includes "Desenha na Tela") | **Fluxo principal 1. Desenha na Tela (Includes "Desenha na Tela") | ||
** 2. Lê Entradas de Game Over (Includes "Lê Entradas de Game Over") | |||
** 1. | |||
Exceções | **Exceções | ||
** 2.1 O Jogador Entrou com o nome dele na tela e Confirmou o nome | |||
** 2.2 Carrega as pontuações antigas (Includes "Carregar Jogos Salvos") | |||
** 2.3 Calcula onde a nova pontuação entra (Includes "Calcular Onde a Nova Pontuação Entra") | |||
** 2.4 Salva a nova Highscore (Includes "Salvar") | |||
** 2.5 Volta ao menu (Extends "Menu Principal") | |||
Nome do caso de uso Desenha na Tela (Game Over) | *Nome do caso de uso Desenha na Tela (Game Over) | ||
Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Game Over | **Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Game Over | ||
Precondições O Jogo estar nol menu de fim de jogo | **Precondições O Jogo estar nol menu de fim de jogo | ||
Condição de sucesso O Jogador pressiona alguma entrada que é aceita | **Condição de sucesso O Jogador pressiona alguma entrada que é aceita | ||
Condição de falha N/A | **Condição de falha N/A | ||
Ator primário Jogador | **Ator primário Jogador | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A função é Chamada | **Gatilho A função é Chamada | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito | **Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito | ||
** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado | |||
Exceções | **Exceções | ||
** N/A | |||
Nome do caso de uso Lê Entradas de Game Over | *Nome do caso de uso Lê Entradas de Game Over | ||
Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de game over | **Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de game over | ||
Precondições Ter morrido no jogo, estar no menu de game over | **Precondições Ter morrido no jogo, estar no menu de game over | ||
Condição de sucesso O Jogador pressiona alguma entrada que é aceita | **Condição de sucesso O Jogador pressiona alguma entrada que é aceita | ||
Condição de falha N/A | **Condição de falha N/A | ||
Ator primário Jogador | **Ator primário Jogador | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A função é Chamada | **Gatilho A função é Chamada | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal | **Fluxo principal | ||
*** 1. Espera o Jogador Apertar algum botão que é aceito | |||
Exceções | *** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado | ||
**Exceções | |||
*** N/A | |||
Nome do caso de uso Carregar Jogos Salvos | *Nome do caso de uso Carregar Jogos Salvos | ||
Alvo no contexto As pontuações salvas estão sendo buscadas, lidas e armazenadas temporáriamente em uma variável | **Alvo no contexto As pontuações salvas estão sendo buscadas, lidas e armazenadas temporáriamente em uma variável | ||
Precondições A função ser chamada, O arquivo existir | **Precondições A função ser chamada, O arquivo existir | ||
Condição de sucesso As pontuações são lidas com sucesso | **Condição de sucesso As pontuações são lidas com sucesso | ||
Condição de falha As pontuações não são lidas com sucesso | **Condição de falha As pontuações não são lidas com sucesso | ||
Ator primário N/A | **Ator primário N/A | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A função é chamada | **Gatilho A função é chamada | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal | **Fluxo principal | ||
*** 1. Verifica se existe o arquivo | |||
Exceções | *** 2. O arquivo existe, Lê o arquivo e guarda os valores em uma variável | ||
**Exceções | |||
*** 1.1 O Arquivo não existe | |||
*** 1.2 Um arquivo é criado com todas as posições do highscore com nome AAA e pontuação zero. | |||
*** 1.3 -> 2. | |||
Nome do caso de uso Calcular Onde a nova pontuação entra | *Nome do caso de uso Calcular Onde a nova pontuação entra | ||
Alvo no contexto Uma nova pontuação será salva no highscores | **Alvo no contexto Uma nova pontuação será salva no highscores | ||
Precondições A função ser chamada | **Precondições A função ser chamada | ||
Condição de sucesso A nova pontuação entra no highscore | **Condição de sucesso A nova pontuação entra no highscore | ||
Condição de falha A nova pontuação é pequena demais para entrar no highscore | **Condição de falha A nova pontuação é pequena demais para entrar no highscore | ||
Ator primário N/A | **Ator primário N/A | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A função é chamada | **Gatilho A função é chamada | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal | **Fluxo principal | ||
*** 1. Verifica se a nova pontuação é maior que alguma das já existentes | |||
*** 2. A nova pontuação é maior que alguma já existente | |||
*** 3. Move todas as pontuações abaixo desta, inclusive a mesma, uma posição abaixo do vetor, descartando a ultima | |||
Exceções | *** 4. Salva a nova pontuação na posição da antiga | ||
**Exceções | |||
*** 1.1 A nova pontuação não é maior que nenhuma das já existentes. | |||
*** 1.2 A nova pontuação é descartada | |||
Nome do caso de uso Salvar | *Nome do caso de uso Salvar | ||
Alvo no contexto As pontuações serão salvas em um arquivo | **Alvo no contexto As pontuações serão salvas em um arquivo | ||
Precondições As pontuações estão armazenadas temporáriamente em alguma variável | **Precondições As pontuações estão armazenadas temporáriamente em alguma variável | ||
Condição de sucesso Salva as pontuações armazenadas nessa variável no arquivo | **Condição de sucesso Salva as pontuações armazenadas nessa variável no arquivo | ||
Condição de falha N/A | **Condição de falha N/A | ||
Ator primário N/A | **Ator primário N/A | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A função é chamada | **Gatilho A função é chamada | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal | **Fluxo principal | ||
Exceções | *** 1. Salva/Sobrescreve os valores da variável em um arquivo de dados | ||
**Exceções | |||
*** N/A | |||
Nome do caso de uso Highscores | *Nome do caso de uso Highscores | ||
Alvo no contexto O jogador acesssou as pontuações do menu | **Alvo no contexto O jogador acesssou as pontuações do menu | ||
Precondições O jogador deve ter selecionado no menu a opção de mostrar a pontuação | **Precondições O jogador deve ter selecionado no menu a opção de mostrar a pontuação | ||
Condição de sucesso O jogador sai da tela de pontuações | **Condição de sucesso O jogador sai da tela de pontuações | ||
Condição de falha N/A | **Condição de falha N/A | ||
Ator primário Jogador | **Ator primário Jogador | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho O jogador acessou a opção de mostrar pontuações através do menu | **Gatilho O jogador acessou a opção de mostrar pontuações através do menu | ||
Casos Incluídos Desenha na Tela, Lê Entradas de Highscore, Carregar Jogos Salvos | **Casos Incluídos Desenha na Tela, Lê Entradas de Highscore, Carregar Jogos Salvos | ||
Fluxo principal | **Fluxo principal | ||
*** 1. Carrega as pontuações já salvas (Includes "Carregar Jogos Salvos") | |||
*** 2. Desenha na Tela (Includes "Desenha na Tela") | |||
*** 3. Lê Entradas de Game Over (Includes "Lê Entradas de Game Over") | |||
Exceções | *** 2. | ||
**Exceções | |||
*** 3.1 O Jogador apertou o botão para sair dessa tela | |||
*** 3.2 Volta ao menu (Extends "Menu Principal") | |||
Nome do caso de uso Desenha na Tela (Highscores) | *Nome do caso de uso Desenha na Tela (Highscores) | ||
Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Highscores | **Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Highscores | ||
Precondições O Jogo estar no menu de highscores | **Precondições O Jogo estar no menu de highscores | ||
Condição de sucesso O Jogador pressiona alguma entrada que é aceita | **Condição de sucesso O Jogador pressiona alguma entrada que é aceita | ||
Condição de falha N/A | **Condição de falha N/A | ||
Ator primário Jogador | **Ator primário Jogador | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A função é Chamada | **Gatilho A função é Chamada | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal | **Fluxo principal | ||
*** 1. Espera o Jogador Apertar algum botão que é aceito | |||
Exceções | *** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado | ||
**Exceções | |||
*** N/A | |||
Nome do caso de uso Lê entradas de Highscore | *Nome do caso de uso Lê entradas de Highscore | ||
Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu | **Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu | ||
Precondições Estar no Menu de Highscores | **Precondições Estar no Menu de Highscores | ||
Condição de sucesso O Jogador pressiona alguma entrada que é aceita | **Condição de sucesso O Jogador pressiona alguma entrada que é aceita | ||
Condição de falha N/A | **Condição de falha N/A | ||
Ator primário Jogador | **Ator primário Jogador | ||
Ator secundário N/A | **Ator secundário N/A | ||
Gatilho A função é Chamada | **Gatilho A função é Chamada | ||
Casos Incluídos N/A | **Casos Incluídos N/A | ||
Fluxo principal | **Fluxo principal | ||
*** 1. Espera o Jogador Apertar algum botão que é aceito | |||
Exceções | *** 2. Volta ao menu principal | ||
**Exceções | |||
*** N/A | |||
Edição das 15h43min de 4 de setembro de 2013
Escopo
- O projeto visa o desenvolvimento de um jogo eletrônico 2D, com um sistema de pontuação e armazenamento de recordes. Esse projeto deverá, provavelmente, ser desenvolvido em Allegro, com a linguagem de desenvolvimento sendo a c++.
- Links para algumas definições:
- Jogo Eletrônico:
- Allegro
5W2H
- What?
- Why?
- Where?
- When?
- Who?
- How Much?
- How?
What
- Qual o nome do seu projeto? CATUS
- Qual o objetivo deste projeto? Criar um jogo eletrônico de plataforma 2d
- Quais os maiores desafios, na sua opinião, para se realizar este trabalho? A realização de uma detecção de colisão satisfatória assim como um sistema de física igualmente bom.
- Quais os conhecimentos básicos que devemos ter para se implementar este projeto? Conhecimentos de programação intermediária para avançada, dependendo da ferramenta utilizada.
- Quais soluções similares existem no mercado? Várias. Ex. jogos da franquia "Mario", "Sonic" dentre vários outros.
Why
- Porque é interessante desenvolver este projeto? Pois é um projeto que irá melhorar os conhecimentos de programação de quem o fizer, e também pois abrirá portas para conseguir desenvolver jogos de dificuldade maior.
- Porque deve usar a tecnologia escolhida? Porquê é uma ferramenta que permite a criação de diversos tipos de aplicações diferentes, assim como permite o desenvolvimento para plataformas diferentes, e também é considerada uma ferramenta de fácil uso adequada para projetos de pequeno porte.
Who
- Quem pode se beneficiar deste projeto? Qualquer pessoa com um computador pessoal e com "Unity3d" instalado.
- Quem poderá operar o sistema? Qualquer pessoa com dedos nas mãos e olhos.
- Quem deverá participar do desenvolvimento do sistema? Qualquer pessoa interessada.
Where
- Onde os dados serão inseridos? No teclado de um computador.
- Onde os dados serão externalizados, publicados? A localização do personagem, assim como dos outros objetos do jogo, a pontuação do jogador, sua vida e em qual nível ele está.
- Onde esta aplicação poderá ser usada? Qualque computador pessoal com "Unity3d" instalado.
- Onde as informações serão armazenadas? Em um arquivo .txt ou de alguma outra extensão que armazene dados.
- Onde o software deverá ser hospedado? Em algum site de armazenamento de projetos, por exemplo o SourceForge, ou algum site qualquer que ofereça hospedagem de arquivos
When
- Em quanto tempo pretende desenvolver o sistema? De 3 a 4 meses.
- Quais serão as fases e em quanto tempo cada uma? As fases serão: Criação do sistema inicial do jogo [2 Meses], Criação da interface do menu [Menos de 1 mês] e criação dos níveis para o jogo [1 a 2 Meses].
How
- Como será dividido o desenvolvimento do sistema? Utilizando a linguagem C# para programar na plataforma unity3d, juntamente com algumas ferramentas gratuítas de edição de imagens
- Como será feita a entrada de dados? Pelo Teclado
- Como será feita a saída de dados? Pela tela e pelos alto-falantes do computador
How much
- Quanto deverá custar o sistema? O software poderá ser desenvolvido sem custo algum.
- Quantas pessoas deverão ser usadas? Um time de até 5 pessoas já será mais do que o necessário. O projeto poderá inclusive ser realizado por uma só pessoa.
- Qual deverá ser o preço de aquisição do seu software para o usuário final? O software poderá ser distribuído gratuitamente.
DFD
DER
Diagrama de Classes
Diagrama de Caso de Uso
Detalhamento dos Casos de Uso
- Nome do caso de uso Menu Principal
- Alvo no contexto O jogador abriu o executável ou saiu do jogo nesse momento
- Precondições Nenhuma
- Condição de sucesso O jogador começa a jogar ou abre as pontuações
- Condição de falha O jogador sai do programa
- Ator primário Jogador
- Ator secundário N/A
- Gatilho O jogador escolhe uma opção do menu
- Casos Incluídos Desenha na Tela, Lê entradas de Menu, Inicializa o jogo
- Fluxo principal
- 1 Desenha na tela (Includes "Desenha na Tela")
- 2 Checa Input (Includes "Lê entradas de Menu")
- 3 O jogador escolhe uma opção do menu
- 4 O jogador escolhe a opção de jogar
- 5 Inicializa as variáveis do jogo (Includes "Inicializa o jogo")
- 6 O jogo começa (Extends "Loop Principal do Jogo")
- Exceções
- 2.1.1 O jogador escolhe a opção de Highscores
- 2.1.2 Mostra as pontuações (Extends "Highscores")
- 2.2.1 O jogador escolhe a opção de Sair do Jogo
- 2.2.2 Sai do Jogo
- Nome do caso de uso Desenha na Tela (Menu)
- Alvo no contexto Desenha o Menu Principal na Tela
- Precondições Estar no Menu Principal
- Condição de sucesso O Menu é desenhado
- Condição de falha O Menu não é desenhado
- Ator primário N/A
- Ator secundário N/A
- Gatilho A função é Chamada
- Casos Incluídos N/A
- Fluxo principal
- 1. Desenha o Menu na Tela
- 2. Desenha o Realce da Opção Selecionada
- Exceções
- N/A
- Nome do caso de uso Lê Entradas de Menu
- Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu
- Precondições Estar no Menu Principal
- Condição de sucesso O Jogador pressiona alguma entrada que é aceita
- Condição de falha N/A
- Ator primário Jogador
- Ator secundário N/A
- Gatilho A função é Chamada
- Casos Incluídos N/A
- Fluxo principal
- 1. Espera o Jogador Apertar algum botão que é aceito
- 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
- Exceções
- N/A
- Nome do caso de uso Fim do Programa
- Alvo no contexto O Jogador Está Saindo do Jogo
- Precondições O Jogador Estar no Menu
- Condição de sucesso O Jogador Sai da aplicação
- Condição de falha N/A
- Ator primário N/A
- Ator secundário N/A
- Gatilho A Condição de Saída do Jogo é Verdadeira
- Casos Incluídos N/A
- Fluxo principal
- 1. Fecha e finaliza o Programa
- Exceções
- N/A
- Nome do caso de uso Inicializa o Jogo
- Alvo no contexto O Jogador está começando um novo jogo
- Precondições O jogador ter selecionado "Jogar" do menu principal
- Condição de sucesso As variaveis do jogo são Inicializadas
- Condição de falha N/A
- Ator primário N/A
- Ator secundário N/A
- Gatilho O jogador selecionar a opção de jogar do menu principal
- Casos Incluídos N/A
- Fluxo principal
- 1. Inicializa a classe do jogador
- 2. Inicializa as listas de balas e inimigos
- Exceções
- N/A
- Nome do caso de uso Loop Principal do Jogo
- Alvo no contexto O jogador selecionou a opção de jogar do menu ou despausou o jogo
- Precondições O jogador ter inicializado o jogo
- Condição de sucesso O jogador Morre
- Condição de falha O jogador Pausa
- Ator primário O jogador
- Ator secundário N/A
- Gatilho O jogador inciar um jogo ou despausar um já inicializado
- Casos Incluídos Desenha na Tela, Lê Entradas de Jogo, Checa Impacto, Atualiza Estados, Reproduz Sons
- Fluxo principal
- 1 Desenha na tela (Includes "Desenha na Tela")
- 2 Checa Input (Includes "Lê entradas de Jogo")
- 3 Checa Impacto (Includes "Checa Impacto")
- 4 Atualiza os estados do Jogo (Includes "Atualiza Estados")
- 5 Reproduz Sons (Includes "Reproduz Sons")
- 1.
- Exceções
- 2.1 O jogo foi pausado (Extends "Pausar")
- 4.1 O jogador está sem vidas (Extends "Game Over")
- Nome do caso de uso Lê Entradas de Jogo
- Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu
- Precondições Estar no Jogo
- Condição de sucesso O Jogador pressiona alguma entrada que é aceita
- Condição de falha N/A
- Ator primário Jogador
- Ator secundário N/A
- Gatilho A função é Chamada
- Casos Incluídos N/A
- Fluxo principal
- 1. Espera o Jogador Apertar algum botão que é aceito
- 2. Altera os estados do Jogador de Acordo com o Botão que foi apertado
- Exceções
- N/A
- Nome do caso de uso Checa Impacto
- Alvo no contexto O jogo checa se há colisão entre algum dos objetos colidíveis
- Precondições Estar no Jogo
- Condição de sucesso É verificado se há algum impacto
- Condição de falha Não é verificado impacto algum
- Ator primário Jogador, Balas
- Ator secundário Inimigos, Balas, jogador
- Gatilho A função é chamada
- Casos Incluídos
- Fluxo principal
- 1. Checa se algum dos inimigos da lista de inimigos colide com o jogador
- 2. Checa se algum dos inimigos da lista de inimigos colide com alguma bala da lista de balas
- Exceções
- 1.1 Algum inimigo Colide com o jogador
- 1.2 O jogador perde uma vida, dá ao jogador um tempo de imunidade
- 1.3 -> 1.
- 2.1 Algum inimigo Colide com alguma bala
- 2.2 Destrói a bala e o inimigo, aumenta a pontuação do jogador
- 2.3 -> 2.
- Nome do caso de uso Atualiza Estados
- Alvo no contexto O jogo atualiza os demais estados envolvidos no jogo
- Precondições Estar no Jogo
- Condição de sucesso Os estados são atualizados
- Condição de falha Os estados não são atualizados
- Ator primário N/A
- Ator secundário N/A
- Gatilho A função é chamada
- Casos Incluídos
- Fluxo principal
- 1. Atualiza as posições das balas da lista de balas
- 2. Atualiza as posições dos inimigos da lista de inimigos
- 3. Verifica os estados do jogador
- Exceções
- N/A
- Nome do caso de uso Desenha na Tela (Jogo)
- Alvo no contexto Desenha o Jogo na Tela
- Precondições Estar no Jogo
- Condição de sucesso O Jogo é desenhado
- Condição de falha O Jogo não é desenhado
- Ator primário N/A
- Ator secundário Jogador, Balas, Inimigos
- Gatilho A função é Chamada
- Casos Incluídos N/A
- Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo
- 2. Desenha as balas da lista de balas
- 3. Desenha os inimigos da lista de inimigos
- Exceções
- N/A
- Nome do caso de uso Reproduz Sons
- Alvo no contexto Reproduz a música de fundo e os sons do jogo
- Precondições Estar no Jogo, Ter tido alguma colisão ou alguma bala ser disparada
- Condição de sucesso Os sons são reproduzidos
- Condição de falha N/A
- Ator primário N/A
- Ator secundário N/A
- Gatilho A função ser chamada OU houve alguma colisão OU houve algum disparo
- Casos Incluídos
- Fluxo principal 1. Houver alguma colisão?
- 2. Houve algum disparo?
- 3. Reproduz Música de fundo.
- Exceções
- 1.1 Houve, reproduz som da colisão
- 2.1 Houve, reproduz som do disparo
- Nome do caso de uso Pausar
- Alvo no contexto O jogador selecionou a opção de jogar do menu ou despausou o jogo
- Precondições O jogador ter inicializado o jogo
- Condição de sucesso O jogador Volta ao jogo
- Condição de falha O jogador Sai do jogo
- Ator primário O jogador
- Ator secundário N/A
- Gatilho O jogador pausa o jogo
- Casos Incluídos Desenha na Tela, Lê entradas de Pause Game
- Fluxo principal 1 Desenha na tela (Includes "Desenha na Tela")
- 2 Checa Input (Includes "Lê entradas de Pause Game")
- 3 O jogador escolhe uma opção do menu
- 4 O jogador escolhe a opção de voltar ao jogo
- 5 O jogo recomeça (Extends "Loop Principal do Jogo")
- Exceções
- 2.1.1 O jogador escolhe a opção de sair do jogo
- 2.1.2 Volta ao menu (Extends "Menu Principal")
- Nome do caso de uso Lê entradas de Pause
- Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Pausa
- Precondições O Jogo estar Pausado
- Condição de sucesso O Jogador pressiona alguma entrada que é aceita
- Condição de falha N/A
- Ator primário Jogador
- Ator secundário N/A
- Gatilho A função é Chamada
- Casos Incluídos N/A
- Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
- 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
- Exceções
- N/A
- Nome do caso de uso Desenha na Tela (Pausar)
- Alvo no contexto Desenha o Jogo na Tela
- Precondições O Jogo estar Pausado
- Condição de sucesso O Jogo e o menu de pause são desenhados
- Condição de falha O Jogo e o menu de pause não são é desenhado
- Ator primário N/A
- Ator secundário Jogador, Balas, Inimigos
- Gatilho A função é Chamada
- Casos Incluídos N/A
- Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo
- 2. Desenha as balas da lista de balas
- 3. Desenha os inimigos da lista de inimigos
- 4. Desenha o Menu de pause
- 5. Desenha o realçe da opção selecionada
- Exceções
- N/A
- Nome do caso de uso Retorna ao Jogo
- Alvo no contexto O Jogador está despausando o jogo
- Precondições O Jogador Estar no menu de jogo pausado
- Condição de sucesso O jogo continua
- Condição de falha N/A
- Ator primário N/A
- Ator secundário N/A
- Gatilho A Condição de pausa é falsa
- Casos Incluídos N/A
- Fluxo principal 1. Retorna ao jogo
- Exceções
- N/A
- Nome do caso de uso Voltar ao Menu Principal
- Alvo no contexto O Jogador está saindo do jogo e indo para o menu principal
- Precondições O Jogador Estar no menu de jogo pausado
- Condição de sucesso O jogo cessa e abre-se o menu principal
- Condição de falha N/A
- Ator primário N/A
- Ator secundário N/A
- Gatilho A Condição de voltar ao menu é verdadeira
- Casos Incluídos N/A
- Fluxo principal 1. Retorna ao menu principal
- Exceções
- N/A
- Nome do caso de uso Game Over
- Alvo no contexto O Jogador Morreu no Jogo
- Precondições O jogador deveria estar jogando e perdeu todas suas vidas
- Condição de sucesso O Jogador Tem sua pontuação salva
- Condição de falha N/A
- Ator primário Jogador
- Ator secundário N/A
- Gatilho O Jogador Morre
- Casos Incluídos Desenha na Tela, Lê Entradas de Game Over, Carregar Jogos Salvos, Calcular Onde a Nova Pontuação Entra, Salvar
- Fluxo principal 1. Desenha na Tela (Includes "Desenha na Tela")
- 2. Lê Entradas de Game Over (Includes "Lê Entradas de Game Over")
- 1.
- Exceções
- 2.1 O Jogador Entrou com o nome dele na tela e Confirmou o nome
- 2.2 Carrega as pontuações antigas (Includes "Carregar Jogos Salvos")
- 2.3 Calcula onde a nova pontuação entra (Includes "Calcular Onde a Nova Pontuação Entra")
- 2.4 Salva a nova Highscore (Includes "Salvar")
- 2.5 Volta ao menu (Extends "Menu Principal")
- Nome do caso de uso Desenha na Tela (Game Over)
- Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Game Over
- Precondições O Jogo estar nol menu de fim de jogo
- Condição de sucesso O Jogador pressiona alguma entrada que é aceita
- Condição de falha N/A
- Ator primário Jogador
- Ator secundário N/A
- Gatilho A função é Chamada
- Casos Incluídos N/A
- Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
- 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
- Exceções
- N/A
- Nome do caso de uso Lê Entradas de Game Over
- Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de game over
- Precondições Ter morrido no jogo, estar no menu de game over
- Condição de sucesso O Jogador pressiona alguma entrada que é aceita
- Condição de falha N/A
- Ator primário Jogador
- Ator secundário N/A
- Gatilho A função é Chamada
- Casos Incluídos N/A
- Fluxo principal
- 1. Espera o Jogador Apertar algum botão que é aceito
- 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
- Exceções
- N/A
- Nome do caso de uso Carregar Jogos Salvos
- Alvo no contexto As pontuações salvas estão sendo buscadas, lidas e armazenadas temporáriamente em uma variável
- Precondições A função ser chamada, O arquivo existir
- Condição de sucesso As pontuações são lidas com sucesso
- Condição de falha As pontuações não são lidas com sucesso
- Ator primário N/A
- Ator secundário N/A
- Gatilho A função é chamada
- Casos Incluídos N/A
- Fluxo principal
- 1. Verifica se existe o arquivo
- 2. O arquivo existe, Lê o arquivo e guarda os valores em uma variável
- Exceções
- 1.1 O Arquivo não existe
- 1.2 Um arquivo é criado com todas as posições do highscore com nome AAA e pontuação zero.
- 1.3 -> 2.
- Nome do caso de uso Calcular Onde a nova pontuação entra
- Alvo no contexto Uma nova pontuação será salva no highscores
- Precondições A função ser chamada
- Condição de sucesso A nova pontuação entra no highscore
- Condição de falha A nova pontuação é pequena demais para entrar no highscore
- Ator primário N/A
- Ator secundário N/A
- Gatilho A função é chamada
- Casos Incluídos N/A
- Fluxo principal
- 1. Verifica se a nova pontuação é maior que alguma das já existentes
- 2. A nova pontuação é maior que alguma já existente
- 3. Move todas as pontuações abaixo desta, inclusive a mesma, uma posição abaixo do vetor, descartando a ultima
- 4. Salva a nova pontuação na posição da antiga
- Exceções
- 1.1 A nova pontuação não é maior que nenhuma das já existentes.
- 1.2 A nova pontuação é descartada
- Nome do caso de uso Salvar
- Alvo no contexto As pontuações serão salvas em um arquivo
- Precondições As pontuações estão armazenadas temporáriamente em alguma variável
- Condição de sucesso Salva as pontuações armazenadas nessa variável no arquivo
- Condição de falha N/A
- Ator primário N/A
- Ator secundário N/A
- Gatilho A função é chamada
- Casos Incluídos N/A
- Fluxo principal
- 1. Salva/Sobrescreve os valores da variável em um arquivo de dados
- Exceções
- N/A
- Nome do caso de uso Highscores
- Alvo no contexto O jogador acesssou as pontuações do menu
- Precondições O jogador deve ter selecionado no menu a opção de mostrar a pontuação
- Condição de sucesso O jogador sai da tela de pontuações
- Condição de falha N/A
- Ator primário Jogador
- Ator secundário N/A
- Gatilho O jogador acessou a opção de mostrar pontuações através do menu
- Casos Incluídos Desenha na Tela, Lê Entradas de Highscore, Carregar Jogos Salvos
- Fluxo principal
- 1. Carrega as pontuações já salvas (Includes "Carregar Jogos Salvos")
- 2. Desenha na Tela (Includes "Desenha na Tela")
- 3. Lê Entradas de Game Over (Includes "Lê Entradas de Game Over")
- 2.
- Exceções
- 3.1 O Jogador apertou o botão para sair dessa tela
- 3.2 Volta ao menu (Extends "Menu Principal")
- Nome do caso de uso Desenha na Tela (Highscores)
- Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Highscores
- Precondições O Jogo estar no menu de highscores
- Condição de sucesso O Jogador pressiona alguma entrada que é aceita
- Condição de falha N/A
- Ator primário Jogador
- Ator secundário N/A
- Gatilho A função é Chamada
- Casos Incluídos N/A
- Fluxo principal
- 1. Espera o Jogador Apertar algum botão que é aceito
- 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
- Exceções
- N/A
- Nome do caso de uso Lê entradas de Highscore
- Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu
- Precondições Estar no Menu de Highscores
- Condição de sucesso O Jogador pressiona alguma entrada que é aceita
- Condição de falha N/A
- Ator primário Jogador
- Ator secundário N/A
- Gatilho A função é Chamada
- Casos Incluídos N/A
- Fluxo principal
- 1. Espera o Jogador Apertar algum botão que é aceito
- 2. Volta ao menu principal
- Exceções
- N/A



