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 ;)
Muestra el código
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
Se agradece muchísimo tu aporte ,pero no acabo de entenderlo estoy muy verde me da miedo salid de draganddrop
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
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