Septiembre 01, 2018, 02:43:25 AM Ultima modificación: Septiembre 01, 2018, 04:38:47 PM por Ikaro3d
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 ;)



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

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

#4 Septiembre 02, 2018, 12:08:51 AM Ultima modificación: Septiembre 02, 2018, 02:38:42 PM por Ikaro3d
Se agradece muchísimo tu aporte  ,pero no acabo de entenderlo estoy muy verde me da miedo salid de draganddrop

#5 Septiembre 02, 2018, 01:13:24 PM Ultima modificación: Septiembre 02, 2018, 01:16:04 PM por Ikaro3d
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

#6 Septiembre 02, 2018, 02:36:33 PM Ultima modificación: Septiembre 03, 2018, 12:25:18 AM por Ikaro3d
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