Já foi introduzida uma pequena parcela da detecção de quando os botões são pressionados. Como não iremos testar utilizando um dispositivo móvel, iremos utilizar as teclas 1, 2, 3, 4 do teclado, que serão referentes aos números (do dispositivo móvel) 1, 4, 6 e 3, ou as cores: verde, vermelho, amarelo, azul. Porém no manual estaremos mantendo as indicações de como deve ficar no dispositivo.
Hoje ainda vou acrescentar mais detalhes a implementação dessa parte de botões e, espero, poder testar com multiplos botões tendo que ser pressionados simultaneamente.
sexta-feira, 20 de junho de 2008
quinta-feira, 12 de junho de 2008
Implementação
O grupo iniciou faz um tempo a implementação do sistema do Band Hero. Para isso, a Carolina criou um sistema SVN na página (não o blog) dela. Nesse sistema já temos várias classes e sempre que alguem tem um tempo, recupera os dados que foram atualizados desde a última vez que entrou e programa mais um pouco desse sistema.
No começo tive um pouco de dificuldade de entender que os arquivos disponíveis não eram referentes a um projeto Android diretamente, isso até seria um pouco mais complicado de ser feito. Mas do jeito que está, temos um conjunto de arquivos e cada um pode (e deve) implementar algo separadamente (um projeto android separadamente) e futuramente iremos juntar todos os dados em um único projeto.
No começo tive um pouco de dificuldade de entender que os arquivos disponíveis não eram referentes a um projeto Android diretamente, isso até seria um pouco mais complicado de ser feito. Mas do jeito que está, temos um conjunto de arquivos e cada um pode (e deve) implementar algo separadamente (um projeto android separadamente) e futuramente iremos juntar todos os dados em um único projeto.
sexta-feira, 16 de maio de 2008
Atualizações
Na quinta-feira da semana passada era o desenvolvimento do último protótipo. Fizemos uma discussão no grupo e optamos por seguir apenas um estilo musical nesse jogo (com a possibilidade de depois sair outras versões do jogo com diferentes estilos musicais). O estilo escolhido foi de músicas clássicas. Com isso o Panda ficou de desenvolver um protótipo de alta fidelidade.
Na terça-feira dessa semana, o Panda trouxe um protótipo muito bom e já com um layout específico de acordo com a nossa escolha do estilo de música (clássicas). O protótipo foi testado e parece apresentar uma boa usabilidade.
O protótipo com as telas e uma pequena demonstração do andamento do jogo com esse protótipo pode ser visto no blog do grupo.
Na terça-feira dessa semana, o Panda trouxe um protótipo muito bom e já com um layout específico de acordo com a nossa escolha do estilo de música (clássicas). O protótipo foi testado e parece apresentar uma boa usabilidade.
O protótipo com as telas e uma pequena demonstração do andamento do jogo com esse protótipo pode ser visto no blog do grupo.
terça-feira, 22 de abril de 2008
Descrição do personagem e cenários de interação
Nome: Carlos Silva
Idade: 15 anos
Descrição:
É um jovem normal para sua idade. Vai à escola todos os dias pela manhã (está no Ensino Médio). Durante a tarde, faz as lições da escola em casa, e logo liga seu Playstation 2 (PS2) para jogar, por exemplo, Guitar Hero. Carlos é um jogador costumaz, e antes de ter ganhado o PS2 de seus pais, já havia jogado muitos outros jogos de diferentes consoles.
Recentemente, começou a ir ao ortodontista, para colocar a fazer manutenções frequentes em seu aparelho. Suas visitas ao ortodontista são semanais, e como fica muito tempo na sala de espera, acaba sentindo falta de alguma distração. Também, acompanha sua mãe sempre que ela vai ao banco e espera bastante tempo na fila, ficando entediado. Nesses momentos, sente falta de estar em casa jognado videogame. Sabe que poderia jogar algo sem seu celular, um modelo de qualidade razoável, mas não vê graça nos joguinhos extremamente simples e casuais disponíveis no dispositivo, como Snake e Frogger, nem nos jogos mais complexos disponíveis via rede, pois acha que o teclado do celular torna a jogabilidade bem ruim.
Possibilidade Futuras:
Carlos gosta muito de Guitar Hero, e portanto é um usuário em potencial de nossa versão do game. Como gosta muito do original, estaria disposto a testar o nosso, ficando encantado com a jogabilidade simples e o gameplay similar ao game a que já está acostumado.
Exemplificação de um fato ocorrido:
Carlos já possui 15 anos de idade, e seus pais acham que ele já deve começar a adquirir mais responsabilidades em sua vida. Com isso, para aprender algumas rotinas comuns da vida dos adultos, seus pais concordaram que Carlos deve acompanhar sua mãe Julia em algumas atividades como compras no mercado e pagamento de contas. Outro motivo para que ele acompanhe sua mãe é apenas para ela não ter que ficar fazendo essas coisas sozinha (por questão de segurança).
Numa sexta-feira, meio dia, Carlos teve que acompanhar sua mãe ao Banco do Brasil pois ela precisava discutir detalhes sobre sua conta. Nesse dia/horário, o banco estava com uma fila de espera muito grande. Felizmente, Carlos estava com um novo jogo em seu celular, o jogo Guitar Hero.
Vendo a fila imensa de espera, Carlos retirou seu celular do bolso. E executou as seguintes tarefas:
Mesmo com o volume mais baixo, outros jovens que estavam mais próximos continuaram observando Carlos jogar pois acharam bem interessante o jogo. Porém outro fato o interrompeu no jogo: o jogo pausou e apareceu uma janela de que ele estava recebendo uma ligação, com a opção de aceitá-la ou rejeitá-la. Carlos aceitou a ligação, e era seu pai Gilmar querendo falar com sua mãe, pois não estava conseguindo ligar no celular dela. Após a ligação, Carlos foi novamente para parte de aplicativos, selecionou o jogo Guitar Hero e tinha uma opção de continuar a música que estava interrompida. Ele resolveu continuar, terminou de jogar essa música e recebeu uma pontuação, que foi superior a sua anterior, colocando-o em primeiro lugar no seu ranking pessoal.
Depois de jogar muitas outras músicas, a vez da sua mãe Julia ser atendida chegou e Carlos escolheu a opção do menu para sair do jogo. Com isso ele saiu do aplicativo e voltou para a janela de aplicativos do celular, da qual ele saiu novamente e voltou para a tela inicial.
Um segundo caso de interação:
O irmão de Carlos, Marcos que tem 8 anos de idade, acordou um dia doente e com febre. Sua mãe Julia deu remédios e tratou como geralmente trata nesses casos. Porém dessa vez Marcos não estava melhorando, então ela resolveu levá-lo à clínica do seu médico (um clinico geral) e Carlos foi junto para acompanhar. Como não havia consulta marcada, ele teve que esperar a consulta de seu irmão que seria "encaixe".
Carlos já sabe que em casos de encaixe e sem tanta urgência como no caso do irmão que apenas tinha uma febre não muito alta poderia demorar muito tempo para ser atendido, ainda mais se a clínica estiver cheia. Com isso, Carlos levou seu celular para jogar o jogo Guitar Hero enquanto esperava para seu irmão ser atendido. Chegando na clínica, viu que a sala de espera estava praticamente cheia mas conseguiu achar um lugar para sua mãe e seu irmão sentarem. Carlos continuou em pé, mas retirou seu celular do bolso e realizou as seguintes operações:
Idade: 15 anos
Descrição:
É um jovem normal para sua idade. Vai à escola todos os dias pela manhã (está no Ensino Médio). Durante a tarde, faz as lições da escola em casa, e logo liga seu Playstation 2 (PS2) para jogar, por exemplo, Guitar Hero. Carlos é um jogador costumaz, e antes de ter ganhado o PS2 de seus pais, já havia jogado muitos outros jogos de diferentes consoles.
Recentemente, começou a ir ao ortodontista, para colocar a fazer manutenções frequentes em seu aparelho. Suas visitas ao ortodontista são semanais, e como fica muito tempo na sala de espera, acaba sentindo falta de alguma distração. Também, acompanha sua mãe sempre que ela vai ao banco e espera bastante tempo na fila, ficando entediado. Nesses momentos, sente falta de estar em casa jognado videogame. Sabe que poderia jogar algo sem seu celular, um modelo de qualidade razoável, mas não vê graça nos joguinhos extremamente simples e casuais disponíveis no dispositivo, como Snake e Frogger, nem nos jogos mais complexos disponíveis via rede, pois acha que o teclado do celular torna a jogabilidade bem ruim.
Possibilidade Futuras:
Carlos gosta muito de Guitar Hero, e portanto é um usuário em potencial de nossa versão do game. Como gosta muito do original, estaria disposto a testar o nosso, ficando encantado com a jogabilidade simples e o gameplay similar ao game a que já está acostumado.
Exemplificação de um fato ocorrido:
Carlos já possui 15 anos de idade, e seus pais acham que ele já deve começar a adquirir mais responsabilidades em sua vida. Com isso, para aprender algumas rotinas comuns da vida dos adultos, seus pais concordaram que Carlos deve acompanhar sua mãe Julia em algumas atividades como compras no mercado e pagamento de contas. Outro motivo para que ele acompanhe sua mãe é apenas para ela não ter que ficar fazendo essas coisas sozinha (por questão de segurança).
Numa sexta-feira, meio dia, Carlos teve que acompanhar sua mãe ao Banco do Brasil pois ela precisava discutir detalhes sobre sua conta. Nesse dia/horário, o banco estava com uma fila de espera muito grande. Felizmente, Carlos estava com um novo jogo em seu celular, o jogo Guitar Hero.
Vendo a fila imensa de espera, Carlos retirou seu celular do bolso. E executou as seguintes tarefas:
- Foi para parte de aplicativos do seu celular;
- Selecionou o jogo Guitar Hero;
- Selecionou a opção de carreira para continuar de onde parou;
- Selecionou uma música que já tinha completado, mas queria melhorar sua pontuação;
- Selecionou o nível de dificuldade para jogar essa música;
- Começou a jogar o jogo, em que deveria pressionar quatro diferentes botões conforme esses chegavam na parte de baixo da tela, na ordem em que apareciam, podendo ser simultaneamente mais de um botão ou também durante um certo período de tempo.
Mesmo com o volume mais baixo, outros jovens que estavam mais próximos continuaram observando Carlos jogar pois acharam bem interessante o jogo. Porém outro fato o interrompeu no jogo: o jogo pausou e apareceu uma janela de que ele estava recebendo uma ligação, com a opção de aceitá-la ou rejeitá-la. Carlos aceitou a ligação, e era seu pai Gilmar querendo falar com sua mãe, pois não estava conseguindo ligar no celular dela. Após a ligação, Carlos foi novamente para parte de aplicativos, selecionou o jogo Guitar Hero e tinha uma opção de continuar a música que estava interrompida. Ele resolveu continuar, terminou de jogar essa música e recebeu uma pontuação, que foi superior a sua anterior, colocando-o em primeiro lugar no seu ranking pessoal.
Depois de jogar muitas outras músicas, a vez da sua mãe Julia ser atendida chegou e Carlos escolheu a opção do menu para sair do jogo. Com isso ele saiu do aplicativo e voltou para a janela de aplicativos do celular, da qual ele saiu novamente e voltou para a tela inicial.
Um segundo caso de interação:
O irmão de Carlos, Marcos que tem 8 anos de idade, acordou um dia doente e com febre. Sua mãe Julia deu remédios e tratou como geralmente trata nesses casos. Porém dessa vez Marcos não estava melhorando, então ela resolveu levá-lo à clínica do seu médico (um clinico geral) e Carlos foi junto para acompanhar. Como não havia consulta marcada, ele teve que esperar a consulta de seu irmão que seria "encaixe".
Carlos já sabe que em casos de encaixe e sem tanta urgência como no caso do irmão que apenas tinha uma febre não muito alta poderia demorar muito tempo para ser atendido, ainda mais se a clínica estiver cheia. Com isso, Carlos levou seu celular para jogar o jogo Guitar Hero enquanto esperava para seu irmão ser atendido. Chegando na clínica, viu que a sala de espera estava praticamente cheia mas conseguiu achar um lugar para sua mãe e seu irmão sentarem. Carlos continuou em pé, mas retirou seu celular do bolso e realizou as seguintes operações:
- Foi para parte de aplicativos do seu celular;
- Selecionou o jogo Guitar Hero;
- Selecionou a opção de transformar uma música existente em mp3;
- Selecionou a música em mp3 que desejava, da sua lista de músicas que estavam no celular;
- Esperou o tempo necessário para transformar a música;
- Selecionou a opção de Quick Play;
- Foi até o final da lista de músicas e selecionou a música que ele acabou de converter da sua lista de mp3;
- Selecionou o nível de dificuldade para jogar essa música;
- Começou a jogar o jogo, em que deveria pressionar quatro diferentes botões conforme esses chegavam na parte de baixo da tela, na ordem em que apareciam, podendo ser simultaneamente mais de um botão ou também durante um certo período de tempo.
- Quando acabou de jogar essa música, viu o placar, que não o deixou muito satisfeito, mas também era a primeira vez que ele jogava essa nova música. Portanto resolveu jogar mais algumas vezes até ter um resultado satisfatório;
- Após conseguir um bom resultado na nova música, Carlos resolveu melhorar o resultado de outras músicas. E foi o quê fez até chegar o momento da consulta de seu irmão. Quando chegou, ele foi para o menu principal e selecionou para sair do jogo. Depois disso para sair da parte de aplicativos, voltando assim para o menu principal do celular.
Captura de melodia
Enfim chegamos a uma conclusão. Como comentei em um post anterior, estava pesquisando junto com o Pastore (de outra equipe) como capturar um único instrumento a partir de uma música em mp3.
A partir de diversos fóruns relacionados a música, descobri que é impossível separar instrumentos de uma música já pronta, portanto não seria possível fazer a separação que gostaríamos. Porém, é possível capturarmos a melodia de uma música, gerando um arquivo MIDI a partir dela. O arquivo MIDI é ideal para gerarmos uma sequência de botões necessária para o jogo. Além disso, acho que é interessante fazermos um jogo baseado na melodia do que um a partir da guitarra, que seria uma copia de um jogo já existente. Vou comentar sobre isso com o grupo hoje e ver a opinião deles.
Em um outro momento (entre hoje e amanhã) eu explico como foi possível gerar esse arquivo MIDI.
A partir de diversos fóruns relacionados a música, descobri que é impossível separar instrumentos de uma música já pronta, portanto não seria possível fazer a separação que gostaríamos. Porém, é possível capturarmos a melodia de uma música, gerando um arquivo MIDI a partir dela. O arquivo MIDI é ideal para gerarmos uma sequência de botões necessária para o jogo. Além disso, acho que é interessante fazermos um jogo baseado na melodia do que um a partir da guitarra, que seria uma copia de um jogo já existente. Vou comentar sobre isso com o grupo hoje e ver a opinião deles.
Em um outro momento (entre hoje e amanhã) eu explico como foi possível gerar esse arquivo MIDI.
segunda-feira, 21 de abril de 2008
Botão
Estou colocando aqui o código atual que estou trabalhando, relacionado ao problema do botão. Nele, podemos ver no LogCat os diferentes botões que são pressionados. Ao pressionar e soltar um botão qualquer, o código dele é impresso duas vezes. Se deixarmos um botão pressionado ele aparece diversas vezes (enquanto estiver pressionado). Irei trabalhar um pouco mais nesse código para fazer o que queremos.
package android.view;
import android.app.Activity;
import android.os.Bundle;
import android.os.ServiceManager;
import android.util.Log;
import android.view.View.OnKeyListener;
public class KeyEventTest extends Activity {
final IWindowManager windowManager = IWindowManager.Stub
.asInterface(ServiceManager.getService("window"));
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
this.findViewById(R.id.cmd_simulate_key).setKeyListener(
new OnKeyListener() {
public boolean onKey(View arg0, int arg1, KeyEvent keyEvent) {
Log.v("KeyEventTest", Integer.toString(keyEvent.getKeyCode()));
Log.v("KeyEventTest", Long.toString(keyEvent.getEventTime()));
return true;
}
});
}
}
package android.view;
import android.app.Activity;
import android.os.Bundle;
import android.os.ServiceManager;
import android.util.Log;
import android.view.View.OnKeyListener;
public class KeyEventTest extends Activity {
final IWindowManager windowManager = IWindowManager.Stub
.asInterface(ServiceManager.getService("window"));
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
this.findViewById(R.id.cmd_simulate_key).setKeyListener(
new OnKeyListener() {
public boolean onKey(View arg0, int arg1, KeyEvent keyEvent) {
Log.v("KeyEventTest", Integer.toString(keyEvent.getKeyCode()));
Log.v("KeyEventTest", Long.toString(keyEvent.getEventTime()));
return true;
}
});
}
}
sexta-feira, 18 de abril de 2008
Poucos posts
Vou explicar o motivo de eu estar colocando poucos posts.
Deixei meio de lado o projeto do botão pois comecei sobre outra dificuldade que iremos ter nesse projeto, que é a separação entre os intrumentos. Precisamos que a música fique tocando sem o instrumento que iremos utilizar para fazer os botões do jogo (no caso do Guitar Hero, esse instrumento é a guitarra). Isso deve ser feito pois o instrumento apenas vai tocar enquanto o jogador estiver acertando as notas e quando ele erra, o som do instrumento deve parar de tocar.
Estou pesquisando programas que possam fazer isso com a ajuda do Pastore, que é de um outro grupo, mas muito interessado na parte de engenharia de som e também tem interesse em programas que possam fazer essa separação.
Deixei meio de lado o projeto do botão pois comecei sobre outra dificuldade que iremos ter nesse projeto, que é a separação entre os intrumentos. Precisamos que a música fique tocando sem o instrumento que iremos utilizar para fazer os botões do jogo (no caso do Guitar Hero, esse instrumento é a guitarra). Isso deve ser feito pois o instrumento apenas vai tocar enquanto o jogador estiver acertando as notas e quando ele erra, o som do instrumento deve parar de tocar.
Estou pesquisando programas que possam fazer isso com a ajuda do Pastore, que é de um outro grupo, mas muito interessado na parte de engenharia de som e também tem interesse em programas que possam fazer essa separação.
quinta-feira, 10 de abril de 2008
Falta de tempo
Infelizmente não tive tempo de testar mais nada desde a minha última postagem aqui... Muitos projetos para fazer (entregar) essa semana.
Assim que eu conseguir modificar um pouco o código que comentei anteriormente (quero fazer com que ele funcione para teclas específicas, e não apenas click do mouse como está atualmente), eu disponibilizo ele aqui!
Assim que eu conseguir modificar um pouco o código que comentei anteriormente (quero fazer com que ele funcione para teclas específicas, e não apenas click do mouse como está atualmente), eu disponibilizo ele aqui!
segunda-feira, 7 de abril de 2008
Botão
Já estou começando a entender um pouco melhor o funcionamento de um código.
Consegui fazer um pequeno teste envolvendo click em um botão. Não sei se vou conseguir implementar especificamente o problema dos botões desejado, mas espero pelo menos avançar um pouco mais na implementação amanhã!
Por enquanto é só! =)
Consegui fazer um pequeno teste envolvendo click em um botão. Não sei se vou conseguir implementar especificamente o problema dos botões desejado, mas espero pelo menos avançar um pouco mais na implementação amanhã!
Por enquanto é só! =)
sexta-feira, 4 de abril de 2008
Nova função "oficial"
Hehe, o título já diz tudo: minha nova função descoberta na ultima terça-feira se tornou "oficial" ontem com a distribuição de funções da gerente Carolina.
Eu tenho que fazer uma pequena implementação com a funcionalidade de pressionar multiplas teclas simultaneamente. Espero que dê tempo até o prazo estabelecido (terça-feira 08/04)! Certamente não será por falta de esforço! =)
Eu tenho que fazer uma pequena implementação com a funcionalidade de pressionar multiplas teclas simultaneamente. Espero que dê tempo até o prazo estabelecido (terça-feira 08/04)! Certamente não será por falta de esforço! =)
Assinar:
Comentários (Atom)