Fazendo Painel de Leds em menos usando System.Drawing(parte 3)
C#
21/06/2011 por
Jar Jar Binks
Código fonte do exemplo: http://www.claytonfreitas.com.br/UserFiles/File/DesenvolvimentoSoftwares/LedPanel.zip
Se você sobreviveu e entendeu o código daqui: http://pogmasters.net/pogs/fazendo-painel-de-leds-em-menos-usando-systemdrawingparte-2.aspx , você merece continuar pela parte mais fácil do jogo, que é cjamar as suas classes para ver a mágica acontecer.
No seu Form1, coloque:
*Dois Botões (button1 e button2)
*Um PictureBox (pictureBox1)
*Um Timer (tmrScrollLeft)
Num contexto global no formulário, crie as seguintes variáveis:
Panel p; //nosso painel de leds
private bool pressed = false; // indica se o mouse está ou não clicado
Dê dois cliques no botão 1, use o seguinte código:
p = new Panel(10, 10);
pictureBox1.Image = p.DrawPanel();
O código acima vai instanciar um painel com 100 leds. E vai desenhá-lo no nosso pictureBox;
Dê dois cliques no botão 2, use o seguinte código:
tmrScrollLeft.Enabled = !tmrScrollLeft.Enabled; // vai habilitar ou desabilitar o timer
dê dois cliques no timer e escreva:
p.ScrollPanelLeft();
pictureBox1.Image = p.DrawPanel();
vai chamar o metodo para rolar o painel de leds para a esquerda e redesenhá-lo, dando impressão de movimento enquanto o timer estiver habilitado.
Manipule o MouseUp, MouseDown, e MouseMove do PictureBox, para acender ou apagar os leds conforme clicamos neles:
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
pressed = true;
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
pressed = false;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (pressed && p.LastChangedLed != p.getLedByPosition(e.X, e.Y))
{
p.ChangeStateByPosition(e.X, e.Y);
pictureBox1.Image = p.DrawPanel();
}
}
Se deu certo escreva um comentário!
:)
Abrazzz!!
Comentários sobre o artigo
Poste um comentário >>
|