Pedro A. (discussão | contribs)
Pedro A. (discussão | contribs)
Sem resumo de edição
Linha 92: Linha 92:


[[Arquivo:UCCATUS2.png]]
[[Arquivo:UCCATUS2.png]]
= 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

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