Vamos limitar o jogador dentro do form, para que ele não saia da borda.
Quando a tecla pressionada, altera o jogador para costas. Mas ele somente poderá mover para cima, se não estiver no topo do form.
Quando a tecla pressionada, altera o jogador para frente. Mas ele somente poderá mover para baixo, se não estiver no fim do form.
Quando a tecla pressionada, altera o jogador para esquerda. Mas ele somente poderá mover para a esquerda, se não estiver no começo do lado esquerdo do form.
Quando a tecla pressionada, altera o jogador para direita. Mas ele somente poderá mover para a direita, se não estiver no começo do lado direito do form.
Para eu conseguir explicar melhor, adicione esse código embaixo de DesenharImagem(Anim. Isto é para desenhar um retângulo com as mesmas proporções do personagem.
Ficará um retângulo azul em volta do personagem.
Esse retângulo é do personagem, ali estão suas posições, comprimento e altura. É com ele que realizamos a colisão com outro objeto.
Não precisa adicionar o código abaixo. Ele criará uma pequena linha no quadrado do personagem.
Perceba que o personagem é desenhado a partir daquela linha. Então não se esqueça, a coordenada não é definida pelos pés do personagem. Mas de onde a imagem é desenhada. Você terá que criar seu próprio sistema de coordenadas.
Volte para seu código, olhe no evento KeyDown a parte onde o personagem move para baixo.
Agora apague essa parte - (SpriteHeight + 40), dê um play e mova o personagem para baixo.
Perceba que o personagem sumiu.
Mas ele somente poderá se mover para a direita, se não estiver no fim do form. A altura do form é 377, enquanto a posição do personagem não for igual ou maior que 377, ele continuará se deslocando. Mas quando chega a 377, o personagem já está desenhado lá embaixo e não o vemos.
Por este motivo eu adicionei - (SpriteHeight+40) ou 104. Aqui você está dando a impressão de que o form é menor para que o personagem apareça.
Você deverá ir testando e fazendo os cálculos até chegar a um resultado satisfatório. Isso também vale para o lado direito - (SpriteWidth +10) ou 42.
Não tenho certeza se me expressei bem, o importante é que treinem e aprendam por si só.
Quando a tecla pressionada, altera o jogador para costas. Mas ele somente poderá mover para cima, se não estiver no topo do form.
Quando a tecla pressionada, altera o jogador para frente. Mas ele somente poderá mover para baixo, se não estiver no fim do form.
Quando a tecla pressionada, altera o jogador para esquerda. Mas ele somente poderá mover para a esquerda, se não estiver no começo do lado esquerdo do form.
Quando a tecla pressionada, altera o jogador para direita. Mas ele somente poderá mover para a direita, se não estiver no começo do lado direito do form.
Para eu conseguir explicar melhor, adicione esse código embaixo de DesenharImagem(Anim. Isto é para desenhar um retângulo com as mesmas proporções do personagem.
Ficará um retângulo azul em volta do personagem.
Esse retângulo é do personagem, ali estão suas posições, comprimento e altura. É com ele que realizamos a colisão com outro objeto.
Não precisa adicionar o código abaixo. Ele criará uma pequena linha no quadrado do personagem.
Perceba que o personagem é desenhado a partir daquela linha. Então não se esqueça, a coordenada não é definida pelos pés do personagem. Mas de onde a imagem é desenhada. Você terá que criar seu próprio sistema de coordenadas.
Volte para seu código, olhe no evento KeyDown a parte onde o personagem move para baixo.
Agora apague essa parte - (SpriteHeight + 40), dê um play e mova o personagem para baixo.
Perceba que o personagem sumiu.
Mas ele somente poderá se mover para a direita, se não estiver no fim do form. A altura do form é 377, enquanto a posição do personagem não for igual ou maior que 377, ele continuará se deslocando. Mas quando chega a 377, o personagem já está desenhado lá embaixo e não o vemos.
Por este motivo eu adicionei - (SpriteHeight+40) ou 104. Aqui você está dando a impressão de que o form é menor para que o personagem apareça.
Você deverá ir testando e fazendo os cálculos até chegar a um resultado satisfatório. Isso também vale para o lado direito - (SpriteWidth +10) ou 42.
Não tenho certeza se me expressei bem, o importante é que treinem e aprendam por si só.