• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Rodasp

Criar um temporizador (tenho alguma urgencia, tenho que entregar para a semana)

11 mensagens neste tópico

Boa noite a todos.

eu estou a fazer um jogo sobre o 25 de Abril em vb6.0, onde se faz um pergunta e depois o utilizador tem que responder a pergunta clicando numa das 3 optionboxs.

o que eu queria fazer era um temporizador, onde se o jogador não respondesse ele passava automaticamente para a pergunta seguinte, na pergunta seguinte o temporizador voltava ao valor inicial (por exemplo 15) e assim sucessivamente.

eu sei fazer um temporizador... o que vos estou a pedir é como se faz para ele, quando eu responder a uma pergunta ele voltar ao valor inicial e se eu não dizer nada para ele passar à seguinte pergunta e voltar ao valor inicial.

alguém sabe fazer?

PS: Eu estou a fazer isto "por livre e boa vontade", eu ainda não aprendi a mexer muito nos temporizadores, sou aluno TGPSI (Técnico de Gestão e Programação de Sistemas Informáticos) curso profissional. Por isso não se admirem de eu não saber muita programação.

Ainda não aprendi arrays nem procedimentos. As funções ainda só tenho uma introdução, nada de mais.

Agradeço desde já,

Feliz Natal e Bom Ano Novo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu sei fazer um temporizador... o que vos estou a pedir é como se faz para ele, quando eu responder a uma pergunta ele voltar ao valor inicial e se eu não dizer nada para ele passar à seguinte pergunta e voltar ao valor inicial.

Olá,

Se o timer chegar ao event timer é porque chegou ao fim, se acertares na resposta paras o timer usando Timer1.Enabled = False e fazes o reset ao tempo usando Timer1.Interval = 15000

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se o utilizador responder antes do tempo acabar já meti para o timer reniciar ao valor inicial.

Agora se falhar é mais complicado... surgiu me uma ideia (vai custar um pouco a fazer) depois digo alguma coisa...

Obrigado moderador...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas se o utilizador responder antes do tempo acabar basta fazeres:

Timer1.Enabled = False

E o timer pára.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok.. a minha ideia não deu e alem disso faziam para ali um monte de codigos que fazia os olhos em bico.

é assim que eu tenho o meu timer...

Private Sub Timer1_Timer()

tempo = tempo - 1

Label1.Caption = "00:" & tempo

If tempo = 0 Then

   MsgBox "O tempo acabou, a tua resposta vai ser considerada errada.", vbCritical, "Fim do tempo"

   Command1_Click

End If

End Sub

só que ele está sempre a ir para o command1_click, e eu queria que ele passa-se para o command2_click, command3_click e assim sucessivamente...

sabem como fazer? talvez um while, n??

sobre se o utilizador responder antes do tempo acabar, eu simplesmente no "command" a seguir eu meto tempo = 15, sempre assim. N cheguei a fazer o enabled, e ele reinicia sempre a 15 na label1, na pergunta a seguir...

Achas que ficava melhor com o enabled??? (Tou fazer diferente ao que tu dizes-te, não quero que leves a mal, tento aprender sozinho. O que sei, sei, o que não sei... sobra para ti e para a stora...  :biggrin:)

Aguardo um resposta....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se não parares o timer ele continua sempre a contar.

O que faz o Command1_Click, Command2_Click, etc ?  Não entendo porque queres que passe para os outros.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se não parares o timer ele continua sempre a contar.

O que faz o Command1_Click, Command2_Click, etc ?  Não entendo porque queres que passe para os outros.

eu ao clicar nesse botao, ele muda a pergunta... simplesmente substitui as opções de resposta. e soma uma pontuação (caso acertar soma 10% se falhar 0%) é só isso

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então e porquê Command1_Click, depois Command2_Click, depois Command1_Click, ....  ?

Cada botão é uma pergunta ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

O melhor é gravares as perguntas todas num lado qualquer e teres so um botao pra ir alterando as perguntas.

podes gravar isso nums BD, num file.TXT ou mesmo no codigo inicializas um array com as perguntas la dentro.

No Timer é mais ou menos como tinhas ai:


Private Sub Timer1_Timer()

tempo = tempo - 1
Label1.Caption = "00:" & tempo
If a = 0 Then
    'poes aqui o k queres k aconteca quando acabar o tempo
    Timer1.Enabled = False ' desliga o temporizador 
End If
End Sub

onde desliga o temporizador podes por antes tempo=15 ele continua automaticamente a contagem mas do 15.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

O melhor é gravares as perguntas todas num lado qualquer e teres so um botao pra ir alterando as perguntas.

podes gravar isso nums BD, num file.TXT ou mesmo no codigo inicializas um array com as perguntas la dentro.

No Timer é mais ou menos como tinhas ai:


Private Sub Timer1_Timer()

tempo = tempo - 1
Label1.Caption = "00:" & tempo
If a = 0 Then
    'poes aqui o k queres k aconteca quando acabar o tempo
    Timer1.Enabled = False ' desliga o temporizador 
End If
End Sub

onde desliga o temporizador podes por antes tempo=15 ele continua automaticamente a contagem mas do 15.

peço desculpa por não responder mais cedo, mas tive problemas com o computador

esse timer tá parecido com o que eu tenho...

acredito que assim seja mais fácil se poderes então ensinar como se faz para guardar os valores na array.

Tenho que fazer um "for" como no PASCAL???

declarar eu sei Ex "dim x (1 to 4) as integer"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora