Etapa 4: Adicionar um método para reiniciar o jogo.
Você viu como o IDE pode adicionar um método do manipulador de eventos para o seu programa automaticamente.Você também pode escrever métodos e adicioná-los ao seu código.Muitos programadores gastam muito tempo adicionando seus próprios métodos.
Observação |
---|
Escrever seus próprios métodos é útil quando há um conjunto de instruções que precisam ser executadas muitas vezes, em locais diferentes.Isso ocorre com freqüência quando você escreve programas. Por exemplo, ao criar este programa Labirinto, quando o programa for iniciado, você deseja para reposicionar automaticamente o ponteiro do mouse no canto superior esquerdo do painel.Quando o usuário move o ponteiro em uma parede, você deseja para reposicionar o ponteiro no início.Quando o usuário move o ponteiro para fora do campo de jogo e voltar novamente, você deseja que ele reposicione o ponteiro no início novamente. Você pode reposicionar o ponteiro sobre o ponto de partida com três linhas de código.Mas ele economiza tempo, se você não precisa escrever essas mesmas três linhas de código em vários lugares diferentes no seu programa.Se você colocar esses três linhas de código em um método, por exemplo, um método chamado MoveToStart(), você só precisará escrevê-los uma vez.Em seguida, você simplesmente chama o MoveToStart() método sempre que você deseja mover o ponteiro de volta para o canto superior esquerdo do painel. |
Para obter uma versão de vídeo deste tópico, consulte Tutorial 2: criar um Labirinto no Visual Basic - 2 vídeo ou Tutorial 2: criar um Labirinto no C# - vídeo 2.
Para adicionar um método para reiniciar o jogo.
Vá para o código para o formulário clicando com o Form1. cs na Solution Explorer e selecionando Exibir código no menu.
Você deve ver o finishLabel_MouseEnter() método adicionado.Logo abaixo desse método, adicione um novo MoveToStart() método.
Private Sub MoveToStart() Dim startingPoint = Panel1.Location startingPoint.Offset(10, 10) Cursor.Position = PointToScreen(startingPoint) End Sub
private void MoveToStart() { Point startingPoint = panel1.Location; startingPoint.Offset(10, 10); Cursor.Position = PointToScreen(startingPoint); }
Há um tipo especial de comentário que você pode adicionar acima de qualquer método, e o IDE pode ajudá-lo a adicioná-lo.Coloque o cursor na linha acima o novo método.No Visual C#, adicione três barras (/ / /).No Visual Basic, adicione três aspas simples (' ').O IDE preenche automaticamente o texto a seguir.
''' <summary> ''' ''' </summary> ''' <remarks></remarks> Private Sub MoveToStart() Dim startingPoint = Panel1.Location startingPoint.Offset(10, 10) Cursor.Position = PointToScreen(startingPoint) End Sub
/// <summary> /// /// </summary> private void MoveToStart() { Point startingPoint = panel1.Location; startingPoint.Offset(10, 10); Cursor.Position = PointToScreen(startingPoint); }
Na linha entre as duas marcas de resumo, preencha o seguinte comentário.(Após pressionar ENTER, o IDE adiciona automaticamente uma nova linha com três barras (/ / /) ou três aspas simples (' '), dependendo de sua linguagem de programação, para que você possa continuar o seu comentário.)
''' <summary> ''' Move the pointer to a point 10 pixels down and to the right ''' of the starting point in the upper-left corner of the maze. ''' </summary>
/// <summary> /// Move the pointer to a point 10 pixels down and to the right /// of the starting point in the upper-left corner of the maze. /// </summary>
Observação Você acabou de adicionar um comentário XML.Como você deve estar lembrado, o IDE mostramos a você informações em uma dica de ferramenta quando você pausado acima a palavra MessageBox.O IDE preenche automaticamente nas dicas de ferramentas para seus métodos.Qualquer coisa que você coloca em um comentário XML aparece na dica do IDE, bem como na IntelliSense janela.Com um programa com muitos métodos, que pode ser útil.Além disso, se você colocar uma parede que é de 10 pixels para baixo e à direita do canto superior esquerdo do painel, você pode alterar (10, 10) no código.Faça experiências com números diferentes até encontrar um ponteiro que funcione para seu Labirinto ponto de partida.
Após adicionar seu método, você precisa chamá-la.Como você deseja que o seu programa para mover o ponteiro sobre o ponto de partida, assim que o programa for iniciado, você deve chamar o método assim que o formulário for iniciado.Para Visual C#, procure o seguinte método no código do seu formulário.
public Form1() { InitializeComponent(); }
Para Visual Basic, adicione este método no código do seu formulário.Antes do finishLabel_MouseEnter método, comece a digitar o código a seguir.
Public Sub New()
Quando você pressiona a tecla ENTER para ir para a próxima linha, o IntelliSense deve fazer o código a seguir são exibidos concluir o método.
Public Sub New() ' This call is required by Windows Forms Designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. End Sub
Este é um método especial chamado de construtor.Ele é executado uma vez, quando o formulário é criado.Neste momento, tudo que ela faz é chamar um método chamado InitializeComponent().Você irá adicionar uma linha a ele para chamar a nova MoveToStart() método que você acabou de escrever.Antes de continuar, considere o que adicionar ao seu programa para obtê-lo para chamar o MoveToStart() método imediatamente depois de chamar o InitializeComponent() método.
Observação O InitializeComponent() no construtor do formulário é um método que o IDE escreveu.Ele adiciona todos os componentes e controles ao formulário e define suas propriedades.Sempre que você alterar qualquer uma das propriedades do formulário ou em seus controles, o IDE altera esse método.Você pode examiná-la abrindo o arquivo Form1 do Solution Explorer.Não é necessário editar o conteúdo da InitializeComponent() método.O IDE se encarrega disso baseado no formulário que você criou na visualização Design.
Adicione uma chamada para o MoveToStart() método imediatamente depois de chamar o InitializeComponent() método.Seu código de formulário deve ter a seguinte aparência.
Public Class Form1 Public Sub New() ' This call is required by Windows Forms Designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. MoveToStart() End Sub Private Sub finishLabel_MouseEnter() Handles finishLabel.MouseEnter ' Show a congratulatory MessageBox, then close the form. MessageBox.Show("Congratulations!") Close() End Sub ''' <summary> ''' Move the mouse pointer to a point 10 pixels down and to the right ''' of the starting point in the upper-left corner of the maze. ''' </summary> ''' <remarks></remarks> Private Sub MoveToStart() Dim startingPoint = Panel1.Location startingPoint.Offset(10, 10) Cursor.Position = PointToScreen(startingPoint) End Sub End Class
namespace Maze { public partial class Form1 : Form { public Form1() { InitializeComponent(); MoveToStart(); } private void finishLabel_MouseEnter(object sender, EventArgs e) { // Show a congratulatory MessageBox, then close the form. MessageBox.Show("Congratulations!"); Close(); } /// <summary> /// Move the pointer to a point 10 pixels down and to the right /// of the starting point in the upper-left corner of the maze. /// </summary> private void MoveToStart() { Point startingPoint = panel1.Location; startingPoint.Offset(10, 10); Cursor.Position = PointToScreen(startingPoint); } } }
Observe a chamada para o MoveToStart() método sob InitializeComponent().Se você está programando no Visual C#, lembre-se de terminar essa linha com um ponto e vírgula (;) ou seu programa não criará.
Agora, salve o seu programa e executá-lo.Assim que o programa é iniciado, o ponteiro deve automaticamente ser reposicionado um pouco para baixo e à direita do canto superior esquerdo do painel.
Para continuar ou revisar
Para ir para a próxima etapa do tutorial, consulte Etapa 5: Adicionar um manipulador de eventos MouseEnter para cada parede..
Para retornar para a etapa anterior do tutorial, consulte Etapa 3: Terminar o jogo.