Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Ayuda

Iniciado por Ezequielk, 03 de Febrero de 2011, 09:52:19 PM

« anterior - próximo »

Ezequielk

Buenas Tardes gente
Vuelvo con más dudas, pero esta vez hice un nuevo thread :P
Estoy haciendo el famoso Arkanoid (lo empece recien asi que no tengo nada echo todavia) y me encontre con un problema, no tengo la más minima idea de como hacer que cuando la bolita choque contra mí, ésta vuelva para arriba con otra dirección.
Sé como hacer que valla para arriba, tambien sé detectar la colision, pero no se como obtener la dirección que tiene que tomar la bolita.
Me pueden ayudar? :)

Saludos
Ezequielk

Hechelion

Lo más simple es que uses un vector, básicamente un vector velocidad que determina hacia donde va el objeto.

VecPos = Vector_Posición =  indica el lugar donde está el objeto actualmente
VecVel = Vector_Velocidad = indica hacia donde se dirige el objeto

La posición se actualiza en base a su velocidad actual
VecPos = VecPos + VecVel

De esa forma, cambiando los valores del Vector velocidad puedes cambiar facilmente la dirección, por ejemplo, para hacer que cambie su dirección vertical, simplemente inviertes el valor del componente Y del vector velocidad.

Public Sub Colision_Jugador()
     VecVel.Y = VecVel.Y * -1  'Al invertir el signo del eje Y, hace que cambie su dirección y en vez de seguir bajando, comienza a subir
End Public


Las cosas buenas de usar vectores, es que hay mucha información y sirven para muchas cosas, por ejemplo, puedes agregar el vector aceleración y como la aceleración se relaciona con la fuerza, puedes agregar fácilmente algunas simulaciones físicas como gravedad, viento, etc.


NOTA:
Al sumar vectores, se deben sumar sus componente por separado, en otras palabras
VecPos = VecPos + VecVel

En código se debe sumar de la siguiente manera (Salvo que tengas alguna función o clase para sumar vectores)
VecPos.X = VecPos.X + VecVel.X
VecPos.Y = VecPos.Y + VecVel.Y

Ezequielk

Gracias Heche, me has salvado otra vez (:






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.