|
 | | |
|
| |  |   |  |  | |  |  | |  |  | |  |  | |  | |
 | | | |
| Bom eu queria fazer um joguinho simples no XNA no estilo do Guitar Hero, e estou tendo um problema. Eu queria fazer o jogo lançar as notas depois de um determinado tempo, exemplo depois de 5, 7, 10, 11 e 14 segundos. Mas não estou conseguindo, se eu uso um timer, igualo ao tempo de jogo em milisegundos, e uso == para comparar o tempo para poder lançar a nota, simplesmente não roda. E se eu uso > ou < depois igualo o Timer a 0, o jogo lançara as notas sempre depois do mesmo tempo. Alguém pode me dizer como faço para lançar as notas depois de um tempo que eu determinar, sendo que esse tempo não tem relação nenhuma? |
|
|
|  |  | | | |
Olá Daniel,
Pelo que entendi, o que você quer é disparar ações no jogo ao longo de uma "linha de tempo" certo?
Acho que você já sabe que no método Update() você sempre recebe o "tempo" do jogo e você pode fazer algo assim para saber o tempo que passou:
timeElapsed += gameTime.ElapsedGameTime.TotalSeconds;
if (timeElapsed >= 10) { // 10 segundos
... faz alguma coisa
timeElapsed = 0;
}
O problema é que no seu caso seria testados vários "timeElapsed" para cada ação ao longo da sua linha de tempo (faça isso aos 5 segundos...faça isso aos 12 segundos...faça isso aos 14 segundos, etc.).
Nesse caso minha sugestão é que você crie GameComponents que representam os objetos temporizados do seu jogo (as notas?) e defina que eles só vão aparecer (Draw()?) após um certo tempo. Cada um tem sua própria variável timeElapsed e a controla dentro do seu próprio método Update().
Outra alternativa é criar um vetor com todo os tempos que você quer controlar e ir testando cada um deles dentro do Update()... Microsoft Most Valuable Professional e Administrador do Sharpgames.
 |
|
|
|  |  | | | |
| Eu consegui fazer, vlw. Eu fiz quase isso, mas só tive que usar o Timer, só que cada nota tem que ter sua própria variável para se mover e sua própria variável para aparecer na tela e desaparecer na tela. Então eu usei uma variável pra ver se ela irá aparecer, que quando o Timer atinge por exemplo 5 segundos ela aparece, e se você acerta essa nota ela desaparece, e somente quando ela aparecer ela começara a se movimentar. E para verificar a colisão cada nota precisa de seu retângulo pra verifica a colisão. |
|
|
|
|  |  | |  |  | |  |  | |  |
|
|
| | |
|
|
|  |
 |  |
|