Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: francordoba en Marzo 29, 2013, 08:59:02 AM

Título: Objetos giren relativamente a uno
Publicado por: francordoba en Marzo 29, 2013, 08:59:02 AM
Una de tanques, mi duda es la siguiente.

A partir de la imagen que adjunto, intento que los dos cañones que son objetos independientes , canon1_obj y canon2_obj, y que NO están en el centro del tanque sino que están más adelantado, permanezcan en sus posiciones con respecto a la base del tanque. Se hacerlo con el tanque "normal" del tutorial que hay aquí, pero entonces,

¿Cómo hago un tanque con dos torretas?
Añado que son torretas AUTOMÁTICAS, es decir, solamente manejo el tanque, las torretas apuntan y disparan solas (esto ya lo se  hacer), pero no permanecen agrupadas a la base , mientras este se mueve o gira.

Repito que cada torreta es independiente.
Por favor sed generosos en el código que llevo un día tras esto y no he conseguido nada de nada y me urge.

Un saludo makeros.

(http://img542.imageshack.us/img542/6663/muestrad.jpg) (http://imageshack.us/photo/my-images/542/muestrad.jpg/)


EDITO:

Agrego algo que quizás simplifique la pregunta. Pensad que en vez de torretas son las 4 ruedas de un coche. Tendríamos un objeto, que sería el chasis, y despues 4 objetos que serían las ruedas con sus rotaciones correspondientes.

Un saludo.
Título: Re:Objetos giren relativamente a uno
Publicado por: brunoxzx en Marzo 29, 2013, 09:37:36 PM
Tuve esta misma duda durante un tiempo, hasta hice una pregunta aqui en cgm pero no me entendieron xD. Al final la respuesta la encontre en unos scripts de funciones trigonometricas que alguien posteo y no se por que tenia el presentimiento de que all[i estaba la respuesta y s[i experimentando unas cuantas horas lo logr[e.

Ok de momento te doy los c[odigos, si gustas que explique solo dilo. Ponlos en el evento end step de cada uno de tus ca;ones

[gml]
//nota el tanque tiene que est[ar centrado.
//Para la flecha azul del frente
x=tanque.x+lenghtdir_x(16, tanque.direction);
y=tanque.y+lenghtdir_y(16, tanque.direction);
//cambia el 16 por la distancia por la deseada.

//para el primer canion
x=tanque.x+lenghtdir_x(12, tanque.direction+60);
y=tanque.y+lenghtdir_y(12, tanque.direction]+60);
//cambia el 12 por la distancia y varia el 60 hasta encontrar el lugar deseado.


//para el segundo canion
x=tanque.x+lenghtdir_x(12, tanque.direction-60);
y=tanque.y+lenghtdir_y(12, tanque.direction-60);
//cambia el 12 por la distancia y varia el 60 hasta encontrar el lugar deseado usa los valores contrarios al otro.
[/gml]
Título: Re:Objetos giren relativamente a uno
Publicado por: francordoba en Marzo 29, 2013, 10:51:16 PM
Funciona, pero, se produce un pequeño lag y los cañones tardan unas milesimas notables en ocupar su posicion, es como si se deslizaran. Me refiero cuando el tanque gira. Si el tanque va recto no lo hace.

Cuando se usa un solo cañon, y esta completamente en el centro del objeto nunca da este problema, hablamos del tanque básico, pero para lo otro, me da que no es posible en gamemaker.

En el caso de los superboss de final de fase compuestos por más objetos, se mueve cada objeto por separado con rutas, creo que lo hacían así, pero claro, ni se hacerlo, ni lo veo necesario, resultaría muy engorroso.

Si alguien arroja un poco más de luz a esto, se lo agradecería...
Título: Re:Objetos giren relativamente a uno
Publicado por: AndreiiCx en Marzo 30, 2013, 01:24:36 AM
no pongas el codigo en Step, ponlos en End of Step.
Título: Re:Objetos giren relativamente a uno
Publicado por: francordoba en Marzo 30, 2013, 03:29:57 AM
Lo puse ahí tambien y consigo el mismo resultado. Se a lo que te refieres, pero solo funciona si el objeto transportador no gira.

He hecho muñecos con los brazos y el arma adheridos al torso, no me dan problemas(en plataformas). Pero en un juego top down, y cuando el objeto cambie de angulo, ocurren los problemas.

No es lo mismo colocar un cañon en el centro de la base, que dos, y en posiciones relativas a dicha base.

Si solamente ahí una transición de la "x" e "y", va seda, pero si hay cambios de ángulo, se jodió el invento.

Si alguien pudiera crear un archivo con una solución que funcione para mi y la comunidad, le serviría a mucha gente ya que inspeccionando (llevo 24 horas), lo preguntan mucho por ahí y casi nadie da solución.
Título: Re:Objetos giren relativamente a uno
Publicado por: brunoxzx en Marzo 30, 2013, 11:37:52 AM
Cita de: francordoba en Marzo 29, 2013, 10:51:16 PM
Pero para lo otro, me da que no es posible en gamemaker.
... imposible, algo tan simplon?  :P.

Cita de: francordoba en Marzo 30, 2013, 03:29:57 AM
Lo puse ahí tambien y consigo el mismo resultado. Se a lo que te refieres, pero solo funciona si el objeto transportador no gira.

He hecho muñecos con los brazos y el arma adheridos al torso, no me dan problemas(en plataformas). Pero en un juego top down, y cuando el objeto cambie de angulo, ocurren los problemas.

No es lo mismo colocar un cañon en el centro de la base, que dos, y en posiciones relativas a dicha base.

Si solamente ahí una transición de la "x" e "y", va seda, pero si hay cambios de ángulo, se jodió el invento.

Si alguien pudiera crear un archivo con una solución que funcione para mi y la comunidad, le serviría a mucha gente ya que inspeccionando (llevo 24 horas), lo preguntan mucho por ahí y casi nadie da solución.
La verdad no puedo crearte el archivo ahora, lo que si te digo es que algo estás haciendo mal, no deberían temblar, no es nada del otro mundo he usado algo parecido para acomodar brazos manos y hasta dedos relativamente a la posición del jugador sin que el giro afecte nada.

Me parece que el problema es que estas usando los eventos mal, haz todo el movimiento del tanque en el evento step y haz todos los seguimientos de los cañones en el end_step o en el mismo draw, comenta si eso funciona :-[, también intenta si puedes unir todos los cañones a un solo objeto. Si nada funciona pasa las medidas del tanque y las posiciones en las que quieres los cañones y te digo como hacerlo completo.
Título: Re:Objetos giren relativamente a uno
Publicado por: francordoba en Marzo 31, 2013, 01:28:45 AM
Gracias, voy a depurar el código y colgarlo aquí. Así ya podréis ver si me equivoco o no.