Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Criando jogos em VB.NET - Colisão
Página 1 de 1
Criando jogos em VB.NET - Colisão
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ó.
DragonicK- Experiente
- Mensagens : 543
Créditos : 81
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: Criando jogos em VB.NET - Colisão
Vamos adicionar uma rocha ao jogo.
Rock
Declare uma variável com o nome de Rock do tipo bitmap.
Inicializando Form_Load.
Não é preciso o uso do MakeTransparency pois o fundo da imagem já é transparente.
Coloque o código para desenhar a pedra logo abaixo de desenhar a Sprite. Aqui, vamos fazer a mesma coisa com o jogador, colocar um retângulo azul em volta.
No final do form, adicione uma function chamada Colision, ela verifica se um retângulo está dentro do outro.
Embaixo de DrawFPS, adicione o código abaixo para desenhar o estado da colisão, verdadeira ou falso.
Aqui não vou fazer um bloqueio na rocha, pois é como eu disse bem acima, crie um sistema de coordenadas. Desse modo você pode facilitar tudo.
Projeto Aula
Rock
Declare uma variável com o nome de Rock do tipo bitmap.
Inicializando Form_Load.
Não é preciso o uso do MakeTransparency pois o fundo da imagem já é transparente.
Coloque o código para desenhar a pedra logo abaixo de desenhar a Sprite. Aqui, vamos fazer a mesma coisa com o jogador, colocar um retângulo azul em volta.
No final do form, adicione uma function chamada Colision, ela verifica se um retângulo está dentro do outro.
Embaixo de DrawFPS, adicione o código abaixo para desenhar o estado da colisão, verdadeira ou falso.
Aqui não vou fazer um bloqueio na rocha, pois é como eu disse bem acima, crie um sistema de coordenadas. Desse modo você pode facilitar tudo.
Projeto Aula
DragonicK- Experiente
- Mensagens : 543
Créditos : 81
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Tópicos semelhantes
» Criando jogos em VB.NET - GDI+
» Criando jogos em VB.NET - Graphics
» Criando jogos em VB.NET - Animações
» Criando jogos em VB.NET - GameLoop
» Criando jogos em VB.NET - Frames Per Second
» Criando jogos em VB.NET - Graphics
» Criando jogos em VB.NET - Animações
» Criando jogos em VB.NET - GameLoop
» Criando jogos em VB.NET - Frames Per Second
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos