Criando jogos em VB.NET - Colisão Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Criando jogos em VB.NET - Colisão

Ir para baixo

Criando jogos em VB.NET - Colisão Empty Criando jogos em VB.NET - Colisão

Mensagem por DragonicK Qua Jan 25, 2012 10:15 pm

Vamos limitar o jogador dentro do form, para que ele não saia da borda.

Criando jogos em VB.NET - Colisão Colisionup

Quando a tecla pressionada, altera o jogador para costas. Mas ele somente poderá mover para cima, se não estiver no topo do form.
Criando jogos em VB.NET - Colisão Colisiondown
Quando a tecla pressionada, altera o jogador para frente. Mas ele somente poderá mover para baixo, se não estiver no fim do form.
Criando jogos em VB.NET - Colisão Colisionleft

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.

Criando jogos em VB.NET - Colisão Colisionright

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.

Criando jogos em VB.NET - Colisão Playercoord

Ficará um retângulo azul em volta do personagem.

Criando jogos em VB.NET - Colisão Playerrect

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.

Criando jogos em VB.NET - Colisão Azulline

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.

Criando jogos em VB.NET - Colisão Spritedown

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
DragonicK
Experiente
Experiente

Mensagens : 543
Créditos : 81

Ficha do personagem
Nível: 1
Experiência:
Criando jogos em VB.NET - Colisão Left_bar_bleue0/0Criando jogos em VB.NET - Colisão Empty_bar_bleue  (0/0)
Vida:
Criando jogos em VB.NET - Colisão Left_bar_bleue30/30Criando jogos em VB.NET - Colisão Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Criando jogos em VB.NET - Colisão Empty Re: Criando jogos em VB.NET - Colisão

Mensagem por DragonicK Qua Jan 25, 2012 10:18 pm

Vamos adicionar uma rocha ao jogo.
Criando jogos em VB.NET - Colisão Rockb

Rock

Declare uma variável com o nome de Rock do tipo bitmap.

Criando jogos em VB.NET - Colisão Rockvar

Inicializando Form_Load.
Não é preciso o uso do MakeTransparency pois o fundo da imagem já é transparente.

Criando jogos em VB.NET - Colisão Rockload

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.

Criando jogos em VB.NET - Colisão Rockrect

Criando jogos em VB.NET - Colisão Rockimg

No final do form, adicione uma function chamada Colision, ela verifica se um retângulo está dentro do outro.

Criando jogos em VB.NET - Colisão Colision

Embaixo de DrawFPS, adicione o código abaixo para desenhar o estado da colisão, verdadeira ou falso.

Criando jogos em VB.NET - Colisão Drawcolision

Criando jogos em VB.NET - Colisão Fimcolision

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
DragonicK
Experiente
Experiente

Mensagens : 543
Créditos : 81

Ficha do personagem
Nível: 1
Experiência:
Criando jogos em VB.NET - Colisão Left_bar_bleue0/0Criando jogos em VB.NET - Colisão Empty_bar_bleue  (0/0)
Vida:
Criando jogos em VB.NET - Colisão Left_bar_bleue30/30Criando jogos em VB.NET - Colisão Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos