Pedro A. (discussão | contribs)
Pedro A. (discussão | contribs)
Linha 134: Linha 134:




Nome do caso de uso Lê Entradas de Menu
*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


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 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 Inicializa o Jogo
*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")


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
*Nome do caso de uso Lê Entradas de Jogo
Precondições O jogador ter inicializado o jogo
**Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu
Condição de sucesso O jogador Morre
**Precondições Estar no Jogo
Condição de falha O jogador Pausa
**Condição de sucesso O Jogador pressiona alguma entrada que é aceita
Ator primário O jogador
**Condição de falha N/A
Ator secundário         N/A
**Ator primário Jogador
Gatilho                         O jogador inciar um jogo ou despausar um já inicializado
**Ator secundário         N/A
Casos Incluídos Desenha na Tela, Lê Entradas de Jogo, Checa Impacto, Atualiza Estados, Reproduz Sons
**Gatilho                         A função é Chamada
Fluxo principal 1 Desenha na tela (Includes "Desenha na Tela")
**Casos Incluídos N/A
2 Checa Input (Includes "Lê entradas de Jogo")
**Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
3 Checa Impacto (Includes "Checa Impacto")
** 2. Altera os estados do Jogador de Acordo com o Botão que foi apertado
4 Atualiza os estados do Jogo (Includes "Atualiza Estados")
**Exceções
5 Reproduz Sons (Includes "Reproduz Sons")
** N/A
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 Checa Impacto
Nome do caso de uso Lê Entradas de Jogo
**Alvo no contexto O jogo checa se há colisão entre algum dos objetos colidíveis
 
**Precondições Estar no Jogo
Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu
**Condição de sucesso É verificado se há algum impacto
Precondições Estar no Jogo
**Condição de falha Não é verificado impacto algum
Condição de sucesso O Jogador pressiona alguma entrada que é aceita
**Ator primário Jogador, Balas
Condição de falha N/A
**Ator secundário         Inimigos, Balas, jogador
Ator primário Jogador
**Gatilho                         A função é chamada
Ator secundário         N/A
**Casos Incluídos
Gatilho                         A função é Chamada
**Fluxo principal 1. Checa se algum dos inimigos da lista de inimigos colide com o jogador
Casos Incluídos N/A
** 2. Checa se algum dos inimigos da lista de inimigos colide com alguma bala da lista de balas
Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
**Exceções
2. Altera os estados do Jogador de Acordo com o Botão que foi apertado
** 1.1 Algum inimigo Colide com o jogador
Exceções
** 1.2 O jogador perde uma vida, dá ao jogador um tempo de imunidade
N/A
** 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 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
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
Linha 264: Linha 257:


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
Linha 282: Linha 274:


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
Linha 300: Linha 291:


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
Linha 321: Linha 311:


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
Linha 338: Linha 327:


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
Linha 357: Linha 345:


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
Linha 373: Linha 360:


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
Linha 389: Linha 375:


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
Linha 411: Linha 396:


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
Linha 428: Linha 412:


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
Linha 445: Linha 428:


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
Linha 464: Linha 446:


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
Linha 484: Linha 465:


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
Linha 500: Linha 480:


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
Linha 520: Linha 499:


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
Linha 537: Linha 515:


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

Edição das 15h32min 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:


5W2H

  • What?
  • Why?
  • Where?
  • When?
  • Who?
  • How Much?
  • How?


What

  1. Qual o nome do seu projeto? CATUS
  2. Qual o objetivo deste projeto? Criar um jogo eletrônico de plataforma 2d
  3. 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.
  4. 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.
  5. Quais soluções similares existem no mercado? Várias. Ex. jogos da franquia "Mario", "Sonic" dentre vários outros.


Why

  1. 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.
  2. 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

  1. Quem pode se beneficiar deste projeto? Qualquer pessoa com um computador pessoal e com "Unity3d" instalado.
  2. Quem poderá operar o sistema? Qualquer pessoa com dedos nas mãos e olhos.
  3. Quem deverá participar do desenvolvimento do sistema? Qualquer pessoa interessada.


Where

  1. Onde os dados serão inseridos? No teclado de um computador.
  2. 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á.
  3. Onde esta aplicação poderá ser usada? Qualque computador pessoal com "Unity3d" instalado.
  4. Onde as informações serão armazenadas? Em um arquivo .txt ou de alguma outra extensão que armazene dados.
  5. 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

  1. Em quanto tempo pretende desenvolver o sistema? De 3 a 4 meses.
  2. 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

  1. 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
  2. Como será feita a entrada de dados? Pelo Teclado
  3. Como será feita a saída de dados? Pela tela e pelos alto-falantes do computador


How much

  1. Quanto deverá custar o sistema? O software poderá ser desenvolvido sem custo algum.
  2. 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.
  3. 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 Realçe 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