Visual C++ 2008 Express Edition [#3]
CAPITULO 2: CLICK RACE GAMEDando continuidade aos primeiros passos no form do visual, vamos aprender mais algumas coisas sobre propriedades e começar com a lógica da coisa. O game da vez é tão fácil quanto ode antes; você terá que ver quantos cliques consegue dar rm um botão em um determinado tempo. Para dificultar teremos dois botões. Nossa tela final será assim:
O funcionamento é o seguinte: Abre o jogo, os dois botões de clicar estão desabilitados. Ao clicar em "Começar" desabilita um botão e ao clicá-lo, ele irá habilitar novamente e desabilitar o outro e assim por diante. Em cima é um contador de cliques.
Comece clicando em Toolbox (), adicione 4 Botões (), 1 Label () e 1 Textbox (). Disponha-os de acordo com a figura acima. Adicione um componente novo, chamado Timer (), que servirá para contar o tempo em que você pode clicar.
Agora vamos mudar as propriedades do nosso game. Clique em Propriedades () e mude:
#Form:
- Text para "CLICK RACE GAME".
# Layer:
- Text para "NÚMERO DE CLICKS:".
- Fonte para tamanho "12".
# Textbox:
- Textalign para "Center"
- ReadOnly para "True"
Feito isso seu form estará igual ao meu, acima citado. Então vamos para a lógica:
0) Adicione uma variável global inteira, para contar os cliques:
private: /// /// Required designer variable. /// int click; |
1) Duplo clique no form (em qualquer local cinza da janela):
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { click = 0; //Zera contador de click button1->Enabled = false; //Congela botão de clicar 1 button2->Enabled = false; //Congela botão de clicar 2; } |
2) Duplo clique no botão "Começar":
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) { button1->Enabled = true; //Descongela botão de clicar 1 button2->Enabled = false; //Congela botão de clicar 2 button3->Enabled = false; //Congela botão de Começar timer1->Interval = 30000; //Conta de 30 em 30 segundos timer1->Enabled = true; //Habilita o timer } |
3) Duplo clique em "Timer":
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) { timer1->Enabled = false; //Desliga timer button1->Enabled = false; //Congela botão de clicar 1 button2->Enabled = false; //Congela botão de clicar 2 } |
4) Duplo click no primeiro botão de clicar (esquerda):
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { click++; //Incrementa um click button1->Enabled = false; //Congela botão de clicar 1 button2->Enabled = true; //Descongela botão de clicar 2 textBox1->Text = click.ToString(); //Escreve o número de clicks } |
5) Duplo click no segundo botão de licar (direita):
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { click++; //Incrementa um click button1->Enabled = true; //Descongela botão de clicar 1 button2->Enabled = false; //Congela botão de clicar 2 textBox1->Text = click.ToString(); //Escreve o número de clicks } |
5) Duplo clique em "Sair":
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) { Close(); //Sair do programa } |
No final, seu código deverá ficar assim:
Feito isso, compile (F7) e rode o programa (F5). Se tudo tiver corrido bem, ele não terá erros:
------ Build started: Project: Programa_2, Configuration: Debug Win32 ------ Compiling... Programa_2.cpp Linking... Embedding manifest... Build log was saved at "file://c:...\Visual Studio 2008\Projects\Programa_2\Programa_2\Debug\BuildLog.htm" Programa_2 - 0 error(s), 0 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== |
Por hoje é só.
Desafio: Adicione outro Textbox () mostrando o tempo em ordem decrescente até congelar o programa. Qualquer dúvida, mail-me.
O aprendizado é a automatização do exercício.
0 comentários:
Postar um comentário