Septiembre 26, 2014, 03:22:23 AM Ultima modificación: Septiembre 26, 2014, 04:31:35 AM por Lobomaestro
 :GMS:Buenas a todos. Soy nuebo en la comunidad. Hace poco que me inicie en el mundo de Game maker. Y aun sigo aprendiendo. desde ahora les agradesco sus respuestas a mi duda. La verdad no creo que sea tan dificil de hacer. Pero la verdad es que por mas que lo pienso no logro encontrar algo. Yo estoy creando un juego que es parecido a un RPG. Pero no es uno esactamente. el personaje se muebe solo o autonomamente por la pantalla. se controla solo. y para cambiar su direccion le puse lo que se llama en ingles swipe. que consiste en deslizar el dedo o el mause sobre el personaje para que cambie de direccion. todo bien hasta ahi. pero el problema es el siguiente. Quiero que dependiendo de la direccion en la que se mueba el personaje cambie el sprite. Porque el sprite de caminar hacia arriba no es igual ni tiene la misma perspectiva que el de caminando hacia el lado. Ni el de caminando en diagonal. entonses quisiera saber como puedo cambiar el sprite segun la direccion del personaje. Les agradeseria inmensamente sus respuestas ya que es un proyecto importante para mi :'D. Muchas grasias
XD XD :D

Hola Lobomaestro, bienvenido :)

Aquí tienes una posible solución a tu problema:

En el código de cambiar la dirección añade
sprite_index = NombreDelSprite;
según la dirección en la que te estés moviendo.


¿Era eso lo que buscabas?
¡Un saludo!

Hola grasias por tu respuesta Mega G. Yo ya sabia el codigo para cambiar el sprite. Pero lo que necesito saber es como hacer que ese codigo se active cuando el personaje valla a una direccion determinada. El codigo no se activara cuando yo toque alguna tecla. Si no que cuando el eprsonaje decida ir a alguna direccion de manera autonoma. Pero muchas grasias por tu respuesta. Y grasias por la vienvenida. XD

Mas presiso aun. En el leguage GML. Lo que quiero logras es decir. Cuando el personaje se mueba a la derecha mostrar sprete de la derecha. Pero no se como hacerlo. Ya que yo no controlo al personaje. EL personaje se controla solo. XD. Grasias. Y perdon por no ser claro en mi pregunta. Grasias por el interes. :-)

#4 Septiembre 27, 2014, 02:31:10 AM Ultima modificación: Septiembre 27, 2014, 02:43:50 AM por penumbra
Todavía falta más claridad. Debes indicar cómo haces el ajuste de dirección en el personaje, porque de la fórmula o variable de dirección depende el cambio de sprite.

Suponiendo que el personaje use la variable  direction para ajustar su dirección, en el evento STEP preguntas qué valor tiene esa variable y usas el resultado para ajustar el sprite

"Si la dirección es mayor o igual a 0 y la dirección es menor a 45, haz que el sprite sea spr_derecha"
"Si la dirección es mayor o igual a 45 y la dirección es menor a 90, haz que el sprite sea spr_arriba_derecha
"Si la dirección es mayor o igual a 90 y la dirección es menor a 135, haz que el sprite sea spr_arriba"
etc, etc.

Esto se puede escribir como varias sentencias IF o como una sentencia SWITCH. Hay maneras más eficientes como usar un arreglo o ds_list para guardar los 8 sprites de dirección y usar
[gml]sprite_index = spr_array[direction * 8/360][/gml]
para cambiar el sprite según la dirección del personaje, pero si tienes poco usando GM la primera opción es la más obvia (pero no la mejor, vuelvo a repetir)

Grasias por la respuesta. La direccion del personaje se controla mediante un swipe. Se puede configurar el swipe de tal forma que cambie el sprite? Porque eso en realidad es lo que quiero. Que el personaje se mueba solo. Pero que le puedas cambiar la direccion con el mause haciendo un swipe. Antes ponia el codigo. image_angle = direction. Pero eso es cuando tienes un solo sprite. Pero en este caso tengo varios sprites diferentes. No se como hacerlo. Por ejemplo
Si el personaje se fuera a mober por las teclas de direccion. Solo tengo que añadir el codigo en el evento de la tecla que coresponda. Pero en el caso del swipe no se. Porque no hay ningun evento Swipe. No se si logren entenderme. No soy tan bueno explicando. XD. Ojala que si me entiendan. Grasias de nuebo. Ya que de verdad se preocupan por responder. Creo que es la mejor comunidad de game maker. Muchas grasias. Y perdonen el grado tan pequeño de mi conosimiento. T-T

No entiendo. Aquí dices que el personaje no lo controlas tú
Cita de: Lobomaestro en Septiembre 27, 2014, 02:08:37 AM
Ya que yo no controlo al personaje. EL personaje se controla solo.

Y luego dices que
Cita de: Lobomaestro en Septiembre 27, 2014, 05:10:46 AM
La direccion del personaje se controla mediante un swipe.
Hasta donde entiendo, un swipe o barrido lo hace el usuario, por lo tanto el personaje no se controla solo, sino que lo controla el usuario mediante el swipe. Y sí, se puede configurar el swipe de tal manera que el sprite cambie. Hace un tiempo hice un tutorial sobre eso, pero como no entiendo bien lo que quieres, no sé si te sea útil o no.
http://www.inventati.org/estupidezartificial/web/papers/swipe_full.html

Eso es lo que buscaba. Muchas grasias. Perdon por no haber sabido como explicarme. XD. Muchas grasias por la ayuda. El tutorial me ayudo mucho. Grasias.

Hola. El teutorial me sirbio de mucho. Aprendi cosas que no sabia hacerca del swipe. Logre hacerlo. Pero me da un error y no se como arreglarlo. hasta ahora he probado con la derecha y la Izquierda. Pero me cambia de sprite solo cuando el quiere. No entiendo que pasa para nada. este es el codigo que utilize en el evento Step. Quisas me puedan ayudar. Muchas grasias. Y sobre todo por su paciencia.

if (dir >= 0) and (dir < 45)
{
sprite_index = Spr_puerquito_derecha
}
if (dir >= 90) and (dir < 135)
{
sprite_index = Spr_puerquito_arriba
}