Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Criando colisão entre objetos - Parte 1


ℛiqu∊
 Compartilhar

Posts Recomendados

Criando colisões entre objetos - Parte 1

Nível: Fácil

 

 

No tutorial de hoje,vamos aprender à como criar uam colisão entre um objeto e outro.

Antes de criar esse sistema,você deverá ter uma noção básica(bem básica) sobre coordenadas.

No meu exemplo,utilizarei 2 panels:

 

 

-Movimento

-Limite

 

 

Onde Movimento servirá como uma espécie de personagem,e Limite,uma parede.

A colisão será feita com esta base:

 

 

Se as posições X e Y forem maiores/menores do que as permitidas,parar o Movimento.

 

Definindo Limites

 

 

Nesta parte do tutorial,definiremos limites de ultrapassagem.

Para criar a colisão,devemos pegar as coordenadas X e Y do Limite:

 

 

cmo2k.png

(link: i.imgur.com/cmo2k.png)

 

 

No meu caso,as coordenadas são:

X: 262

Y: 95

 

 

Vamos posicionar o Movimento no local onde queremos que aconteça a colisão em X:

 

 

jb0n1.png

(link: i.imgur.com/jb0n1.png)

 

 

Vamos anotar a coordenada X do Movimento.No meu caso,é:

X: 222

 

 

Agora vamos posicionar o Movimento no local onde queremos que aconteça a colisão em Y:

 

 

osNmi.png

(link: i.imgur.com/osNmi.png)

 

 

Vamos anotas as coordenadas Y do Movimento.No meu caso,são:

 

 

Y1: 36

Y2: 265

 

 

Já temos as coordenadas que precisamos para realizar a colisão.

Agora devemos fazer uma conta,para que a colisão seja efetuada sem BUGs em posições diferentes do Movimento e Limite.

 

 

Para isso,vamos fazer contas separadas das colisões de X e Y.

 

 

Colisão em X

 

 

Vamos observar as coordenadas X do Limite e Movimento:

 

 

X de Limite: 262

X de Movimento: 222

 

 

Para que bloqueie a ultrapassagem,devemos obter um resultado que seje sempre igual,e no caso,o resultado deve ser uma conta de subtração entre Limite e Movimento:

 

 

a = Limite - Movimento

 

 

Vamos fazer nossa primeira conta.

 

 

a = 262 - 222

a = 40

 

 

O nosso resultado deve ser sempre 40 em qualquer posição.Vamos tirar a prova,e ver se está funcionando em um outro lugar.

Posicionei Movimento e Limite nas seguintes coordenadas X:

 

 

X de Limite: 333

X de Movimento: 293

 

 

Vamos re-fazer a conta:

 

 

a = 333 - 293

a = 40

 

 

Yay! Deu certo!

 

 

Para bloquear a ultrapassagem,devemos voltar a coordenada X de Movimento em -1(em direita.Em esquerda,será +1).

 

 

Vamos criar uma nova função chamada RealizarColisao:

 

 

Private Sub RealizarColisao()

If Movimento.Location.X = Limite.Location.X - 40 Then

Movimento.Location = New Point(Movimento.Location.X - 1, Movimento.Location.Y) 'Bloqueia ultrapassagem para a direita

End If

End Sub

 

 

Terminamos aqui a colisão em X!Fácil,não?

 

Créditos totalmente à mim

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.