Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Ikaro3d en Septiembre 01, 2018, 02:43:25 AM

Título: rotar_spr drag-and-drop
Publicado por: Ikaro3d en Septiembre 01, 2018, 02:43:25 AM
Hola compañeros estoy relazando un pequeño proyecto tipo r-type con el fin de aprender, tengo una nave en la cual ,al desplazarse hacia arriba rota -15 y hacia abajo pues a la inversa,
el problema en el que me encuentro después de probar mil cosas sin sentido, es que cuando giro a la izquierda le establezco un esprit mirando hacia la izquierda pero me sigue rotando como si tuviera el spr de la derecha y no se como  programar para que cundo mire hacia la izquierda me rote la imagen correctamente hacia arriba y abajo y no al contrario.
Saludos ;)

Título: Re:rotar_spr drag-and-drop
Publicado por: Clamud en Septiembre 01, 2018, 05:28:05 AM
Muestra el código
Título: Re:rotar_spr drag-and-drop
Publicado por: Ikaro3d en Septiembre 01, 2018, 04:58:21 PM
tengo puesto que  cuando pulso hacia arriba mirando a la derecha  me rote 20 grados hacia arriba  ,pero cunado cuando  giro a la izquierda sigue rotándome esos 20 grados pero como si el objeto mirase hacia la derecha  ose que al estar hacia la izquierda cuando subo rota  hacia abajado ,
no se como indicarle ,
si obj va hacia x-20 izquierda me rote hacia un sentido y de lo contrario al revés
Título: Re:rotar_spr drag-and-drop
Publicado por: BssString en Septiembre 01, 2018, 07:10:48 PM
Hola Ikaro3d

Deberías pensar en cambiarte al código GM, es más versátil que el Drag & Drop.

Tengo el GM en inglés, así que no sé como se llamarán las funciones, pero esto es lo que tienes que hacer:
Tienes que calcular el ángulo mínimo que hay entre tu ángulo actual y tu ángulo objetivo (que es la inclinación que quieres lograr)
Si vas a la derecha, tu angulo objetivo es 0º
Si vas hacia arriba, tu angulo objetivo es 90º
Si vas a la izquierda, tu angulo objetivo es 180º
Si vas hacia abajo, tu angulo objetivo es 270º

Calculas cuanto te falta y cambias gradualmente la inclinación. Te daré el ejemplo para la tecla izquierda y tu haces las otras 3.

En el Evento pulsar tecla izquierda.
Asigna una variable (puede ser de las normales o una local)
nombre = dif
valor = angle_difference(180,image_angle)
relativo = desmarcado


Eso crea la variable "dif" donde guardas cuanto debes girar la nave para llegar al ángulo objetivo.

Ahora vuelves a asignar una variable.
nombre = image_angle
valor = sign(dif)*(15)
relativa = Marcada


Eso cambia gradualmente la inclinación de tu nave según el signo de la diferencia. -15 grados si la diferencia era negativa, +15 grados si la diferencia era positiva o 0 si ya tienes la inclinación correcta

Para las otras direcciones, cambia el 180 de la primera asignación por el ángulo correspondiente.

Saludos
Título: Re:rotar_spr drag-and-drop
Publicado por: Ikaro3d en Septiembre 02, 2018, 12:08:51 AM
Se agradece muchísimo tu aporte  ,pero no acabo de entenderlo estoy muy verde me da miedo salid de draganddrop
Título: Re:rotar_spr drag-and-drop
Publicado por: Ikaro3d en Septiembre 02, 2018, 01:13:24 PM
ya lo he solucionado  :) ,no se si anteriormente me explicado muy bien jiji , pero esto es lo que necesitaba

de todas formas muchísimas gracias por tu aporte
Título: Re:rotar_spr drag-and-drop
Publicado por: Ikaro3d en Septiembre 02, 2018, 02:36:33 PM
para el movimiento spieed=0   subir y bajar he creado una variable control=0

cuando lo tenga mas claro y este mas avanzado lo aplicare a código gml