sábado, 29 de setembro de 2012

Atualização 29-09

Essa semana não tivemos mudanças bruscas no projeto, algumas pequenas mudanças foram feitas, entre elas:

- Refatoração do código.

- Novo som para o menu, exemplo no link (https://skydrive.live.com/redir?resid=C86ED3485BA3E057!245&authkey=!ACOqxmj-tncF34Q).

- Nova animação para o chefão está sendo finalizada.

- O Save agora está mais complexo, os valores são convertidos para Base 2, dificultando uma possível mudança nele. Entretanto estou tendo alguns problemas no Load devido essa alteração, acredito que até a semana que vem ele já esteja OK.

Caso queira saber mais sobre como é feita a conversão do número na base 10 para base 2 vide o código abaixo:


                do
                {
                    Resto = Valor[K] % 2;
                    q = Valor[K] / 2;
                    novonumero[i] = Resto;
                    Valor[K] = q;
                    i++;
                } while (q != 0);

O "K" é o índice do vetor Valor, esse código está dentro de um "for". O Valor deve ser um vetor pois temos vários valores dentro do Save.txt (Posição X, Posição Y, Vida, etc), até daria para fazer uma variável para cada valor, mas isso não ficaria muito "bonito" e o código com o vetor fica muito mais eficiente.

Esse algoritmo serve também para fazer a conversão para outras bases, basta modificar o "2" para a base desejada.

sábado, 22 de setembro de 2012

Atualização 22-09

Essa semana foram trabalhados os seguintes tópicos:

- Save.
- Load.
- Novas sprites para animação.
- Melhora no Scrolling de tela.
- Desenhado um novo personagem.



- Código refatorado.
 - Implementado uma nova máquina de estados
- Novos estados (Apanhando) para os inimigos.



- Animação no Menu



sábado, 15 de setembro de 2012

Atualização 15-09

Essa semana foram trabalhados os seguintes tópicos:

- Adição do menu de pausa.
- Nova interface de menu.
- Adição de Achievements durante a Fase Tutorial.
- Adição de Scrolling na tela.
- Refatoração do código.
- Janela de Instruções para a Fase Tutorial.


Novo Menu:

O novo Seletor está sendo trabalhado.

Achievements e Janela de instruções (Está janela é temporária, uma nova será trabalhada pelo artista responsável, só foi implementada para verificar se os efeitos de transição):



sábado, 1 de setembro de 2012

Back in Action!

Voltamos de férias e nesse primeiro mês de atividade algumas coisas foram modificadas/acrescentada ao projeto.

Entre elas:

- Menu com opção de escolher entre (Novo jogo, Carregar Jogo, Opções, Sobre e Sair), a principio somente a primeira opção, o "Sobre" e o "Sair" estão funcionando 100%, as demais serão implementadas ao decorrer do curso.

- Implementação do Som no Menu e correção de bugs nele.

- Implementação do objeto "Cérebro".

- Correção do bug da parte escrita no HUD.

- Refatoração do código.

 Imagem do Menu:


Nesse semana foram pesquisados os tópicos:

- IA
- Save (XML)

quinta-feira, 14 de junho de 2012

Atualização 14-06

O jogo, ao longo desse período, mudou um pouco de cara, quem quiser fazer um teste basta mandar um email para (este) que estarei encaminhando o instalador, por enquanto é uma fase tutorial, mas já mostra qual a ideia do jogo final.

Nessa última atualização foi mudado o cenário devido a aplicação do Parallax, foram acrescentados os efeitos sonoros tanto no menu, quanto na fase e nos personagens.

Estamos satisfeitos com o resultado, pois conseguimos montar a base do jogo, a qual é a parte mais difícil.

Queremos agradecer a todos os professores envolvidos no curso de Design de Jogos Digitais da Universidade Cruzeiro do Sul.

Pretendemos continuar com o projeto nas férias e a cada mudança estarei postando aqui.

Até o 2º semestre,
Abraços, Equipe Zombie Raw.



PS: Ideias e sugestões serão sempre bem-vindas!!

Revision 158

Foram eliminados alguns métodos redundantes do código, a saber:

Get_Colisao_Com_Visao()
Já existe um método que verifica a colisão com o campo de visão, que é o getCollidingCampoVisao()

get_HP()
Já existe um método que retorna o HP do objeto, que é o getHP()

getSomJogador() e a variável booleana tocar_jogador
Se o intuito era verificar se o jogador ainda estava vivo para tocar o som de quando apanha, é mais lógico usar o método já implementado IsDead(). O código fica mais limpo e não precisa dizer para todos os inimigos que o jogador morreu para parar de tocar o som de quando apanha.

Ao invés de: if (tocar_jogador)
É mais intuitivo: if (!jogadorAlvo.IsDead())

variável booleana Inimigo_vivo

Ao invés de: if (Inimigo_Vivo == false)
É mais intuitivo: if (IsDead())

get_Game_Over()
Este método é redundante. No seu lugar, podemos usar uma generalização do método get_Desenhar() para o jogador. Afinal, quando o jogador não puder mais ser desenhado, significa que morreu, e consequentemente será Game Over. Isso permitirá unificar os médotos Update() das classes Jogador, Inimigo01 e Chefao, que estavam separadas só por que usavam variáveis booleanas diferentes. O método ficará na classe pai Personagem e será igual para todos.

Classe Fade
A classe Fade foi excluída do projeto, por não ser mais necessária.

quarta-feira, 13 de junho de 2012

Revision 156 e 157

Foi corrigido o BUG que estava impedindo as animações de morte dos inimigos serem desenhadas.

O BUG foi causado durante a implementação da tela You Win. O método que checava a morte impedia que os objetos fossem desenhados na tela assim que o HP ficasse menor que zero.

A solução encontrada foi substituí-lo por um método que já existia no código, que ao invés de checar o HP, checa se ele precisa ser desenhado. (Estado = dead e último frame exibido)

E a outra alteração mais aparente: foram implementadas animações nas telas de menu e de fim de jogo para deixar o projeto mais comercial.