Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: koopa2 en 20 Septiembre 2006, 00:04 am



Título: algoritmo de colisiones e visual basic 6? ayuda
Publicado por: koopa2 en 20 Septiembre 2006, 00:04 am
hola gente alguien sabe hacer una colision unsando matrices , es decir lo que quiero que suceda es que al mover un label , ese mismo colisione en un cordenada especifica que yo le doy  en los dos ejes x , y

alguien sabe hacerlo ?

saludos y gracias


Título: Re: algoritmo de colisiones e visual basic 6? ayuda
Publicado por: Mr.Chispa en 20 Septiembre 2006, 07:18 am
Código:
function colision(x1,y1,x2,y2,h2,w2) as boolean
if x1>x2 and x1<x2+w2 and y1>y2 and y1<y2+h2 then colision=true
else
colision=false
end function
esta funcion te devuelve true si hay colision y false si no la hay.
si tenes alguna duda decime, espero q te sirva, saludos


Título: Re: algoritmo de colisiones e visual basic 6? ayuda
Publicado por: koopa2 en 21 Septiembre 2006, 18:44 pm
hola, lo que no entiendo es como le estas diciendo al codigo donde queres que choque?

saludos y gracias


Título: Re: algoritmo de colisiones e visual basic 6? ayuda
Publicado por: Mr.Chispa en 21 Septiembre 2006, 19:00 pm
en si lo q hace esta funcion es saber si un punto esta dentro de un rectangulo, si queres saber si 2 labels se estan tocando tenes q hacer asi:
Código:
colision1=colision(lbl1.left,lbl1.top,lbl2.left,lbl2.top,lbl2.height,lbl2.width)
colision2=colision(lbl1.left+lbl1.width,lbl1.top,lbl2.left,lbl2.top,lbl2.height,lbl2.width)
colision3=colision(lbl1.left,lbl1.top+lbl1.height,lbl2.left,lbl2.top,lbl2.height,lbl2.width)
colision4=colision(lbl1.left+lbl1.width,lbl1.top+lbl1.height,lbl2.left,lbl2.top,lbl2.height,lbl2.width)
if colision1 or colision2 or colision3 or colision4 then
'se estan tocando
else
'no se estan tocando
end if
lo q hacemos es comprobar si hay colision con cualquiera de las esquinas de lbl1