Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Bubble witch saga re ubicar bola

Iniciado por Tomas379, Julio 14, 2015, 01:47:35 AM

Tema anterior - Siguiente tema
Hola Estoy intentando hacer un juego estilo bubble witch saga pero no se como hacer la re ubicación de la bola al colisionar con el "techo" o otra bola alguien me podría orientar un poco? Gracias...

Si recien empezas con Unity lee la api/referencia de la misma, vas a ver que tienes actuadores tales como los collision,etc.
Si no sabes programacion deberas realizar algunos/varios tutos para que tengas una idea basica de ello.
Luego si sabes esto puedes hacer un actuador para detectar la colision entre la bola y el techo (colliders) con su respectiva programacion. Y luego reseteas la programacion con Transform.position.
Si no entendiste y no seguis los puntos que te dicte dudo mucho que puedas hacer algo por ti mismo, por lo cual te veremos muy seguido por aqui. Tomalo como consejo

Una cosa @Tomas379 ese tipo de juegos no se hace por colisión, se hace por listas 'arrays'. intenta aprender sobre tal y mas a fondo sobre el lenguaje que uses

····>Desarrollando un videojuegos online-arcade para Android.


····>Programador en:C,C#,VB.net,PHP,HTML5,SQL,JS,Ruby.


····>Trabajando en: Desarrollo de paginas web y bushistudios.


                    ๑۩۞۩๑_(▀▄)KINGTRASE()_๑۩۞۩๑ 



a ver si voy por buen camino cree una lista con los transforms coloque un boxcollider2d en la parte superior lanzo la bola y cuando collisiona busca en la lista el transforms mas cercano a la bola el problema es que al re ubicar la lo hace bruscamente



Julio 21, 2015, 12:23:53 PM #6 Ultima modificación: Enero 01, 1970, 01:00:00 AM por Antonio
Nunca lo he hecho, a las bolas que hay que golpear, yo creo que les pondría el sphere collider para detectar cuando hay alguna collision entrante. (OnCollisionEnter ()... ) mirar si la bala que le da, es la del cañón del jugador, y posteriormente, mirar su color, si es similar, pues llamar a la función destruir, si no, pues llamar a la función buscar hueco, que buscaría el hueco vacío más cercano. Al techo, yo le pondría un collider con la opción de IsTrigger activada, para que así las bolas que se lancen, no "choquen" si no que puedan seguir su rumbo, pero dejar el trigger para decirle que se destruya después de 1 segundo? y contabilizar los puntos o acciones que tenga que pasar por fallar el tiro. 

El asunto de los muros tengo más duda (por eso del rebote), sé que las físicas de Unity tienen un sistema de rebote, pero no sé si se puede predecir. Yo creo que me fiaría más haciendo las operaciones yo. (al ángulo de la normal del muro, le restas el ángulo de la dirección de la bola, y la diferencia, se la sumas para obtener la nueva dirección de rebote, al menos para obtener un rebote simple). En fin, los muros si tendrían que ser colliders solidos.

El asunto de la función "destruir", ¿se podría hacer mediante recursividad?, al activarse, se cambia una variable que dice que se está destruyendo, y poseriormente, la pelota mira en sus esferas adyacentes, si encuentra alguna de su mismo color y que su variable "destruyendo" esté en falso, pues manda otra función destruir en ella, y se espera a la respuesta. La vecina que ha recibido la función, volverá a hacerlo... y así seguiría el bucle hasta que una de ellas de el asunto por fallido. No encuentre ninguna de su mismo color alrededor, o que encuentre esferas de su mismo color pero que ya se estén destruyendo, en ese caso, la función terminaría, y volvería hacia atrás, donde las esferas anteriores seguirían mirando vecinos hasta que se vuelva a dar la situación de fallo, y volverían atrás, el sistema pasaría así hasta la 1º esfera que activo el proceso, esta, al no tener "llamante" al que volver, pues acabaría la acción.  Sí, creo que eso podría funcionar. O.ò

 

Hola @Adngel gracias por las respuestas el problema de la re ubicación esta solucionado como muestro en el enlace de el web player. Para la eliminación pensaba  usar el algoritmo de dijkstra se me hace fácil implementarlo al ya verlo usado en otro proyecto aunque no creo que sea el mas optimo...  

Etiquetas: