Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Black_Cat en Enero 05, 2014, 05:02:47 AM

Título: Que mi personaje sea empujado por engranaje(solucionado)
Publicado por: Black_Cat en Enero 05, 2014, 05:02:47 AM
Dejo un gráfico explicativo (perdón por mi mal dibujo, espero que se entienda) :-[

Quisiera saber cómo podría hacer para que mi personaje sea empujado por el movimiento de mi engranaje, el cual gira en dirección antihorario (u horario). En el gráfico gira antihoriario, vease la flecha roja grande.
¿Es posible hacer que mientras se va moviendo el engranaje, este vaya empujando a mi personaje, estando allí parado solamente?

Espero puedan ayudarme :)
Título: Re:Que mi personaje sea empujado por engranaje
Publicado por: 3dgeminis en Enero 05, 2014, 05:23:18 AM
Seria comparable a plataformas moviles, asi que te aconsejo que busques ejemplos de ellas y por youtube tambien hay algunos tutoriales que te pueden ayudar. Me acuerdo tambien haver visto de plataformas que se mueven en forma circular, asi que podrias empezar por ahi.
Título: Re:Que mi personaje sea empujado por engranaje
Publicado por: Black_Cat en Enero 05, 2014, 04:55:52 PM
Sé hacer plataformas móviles, pero la verdad no sabría como hacer para aplicar eso para formas irregulares como un engranaje.  :-[ Y cómo es que podría hacer para que empuje a mi personaje...


Edit: Eh logrado solucionarlo usando collision_line, gracias por el apoyo! :D
Título: Re:Que mi personaje sea empujado por engranaje(solucionado)
Publicado por: eams1986 en Enero 06, 2014, 05:35:41 AM
Por favor poner el ejemplo para todos de la comunidad y asi no los quedamos con las dudas.
GRACIAS
Título: Re:Que mi personaje sea empujado por engranaje(solucionado)
Publicado por: mijailbellum en Enero 06, 2014, 11:49:15 AM
A mi también me interesa el tema, si al menos dejas una idea algo más aproximada me harías un gran favor en el futuro, gracias de antemano. :)
Título: Re:Que mi personaje sea empujado por engranaje(solucionado)
Publicado por: Black_Cat en Enero 06, 2014, 01:29:03 PM
Bueno, básicamente lo que hice fue usar funciones trigonométricas para recrear el recuadro correspondiente a un diente de engranaje. Así calculé 4 puntos de los cuales uní con lineas para verificar de qué lado golpea al player. Cada collision_line corresponde a una cara exterior.

Luego simplemente hice que al chocar se calculara el centro de dicho diente de engranaje y lo moví en la dirección contraria.

El ejemplo adjunto está incompleto, solo funciona para el que esta coloreado en verde. Solo faltaría agregar las verificaciones para los otros 2 lados exteriores y mejorar un poco la colision, puesto que el objeto con el que colisiona sale disparado en vez de ser movido de acuerdo a la velocidad del engranaje. Pero eso supongo que se puede solucionar.

Suerte! :)