Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Sr. Gustavo en Enero 12, 2016, 01:42:09 AM

Título: {Resuelto} Cambia de sprites y de direccion de ataque
Publicado por: Sr. Gustavo en Enero 12, 2016, 01:42:09 AM
Hola.
Veran necesito que un objeto (al cual controlara el usuario) cambie de sprite al presionar por ejemplo
Izquierda y que a la vez camine hacia la izquierda
Y que tambien los ataques vayan hacia la izquierda y lo mismo para la derecha, arriba y abajo

Actualmente tengo un sistema parecido, solo que tengo 4 objetos
User arriba
User Abajo
User izquierda
User derecha
Y en vez de eso solo quiero un objeto
Gracias de antemano
Título: Re:Cambia
Publicado por: bygdle en Enero 12, 2016, 01:56:12 AM
Es como el segundo tema más preguntado en el foro, ya está resuelto unas 12.000.000 veces, usa un poco el buscador xD

Agregas un evento <step>, y en él pones:
[gml]
if keyboard_check(vk_left) //si se presiona la flechita izquierda
{
   x -= 5; //se mueve a la izquierda en una velocidad de 5px/step
   sprite_index = sprite_izquierda; //se cambia el sprite al sprite_izquierda
}

if keyboard_check(vk_rigth) //si se presiona la flechita derecha
{
   x += 5; //se mueve a la derecha en una velocidad de 5px/step
   sprite_index = sprite_derecha; //se cambia el sprite al sprite_derecha
}
[/gml]

Y debería funcionar
Título: Re:Cambia
Publicado por: kostra en Enero 12, 2016, 02:05:24 AM
Cita de: Sr. Gustavo en Enero 12, 2016, 01:42:09 AM
User arriba
User Abajo
User izquierda
User derecha
(tós)
Título: Re:Cambia
Publicado por: Sr. Gustavo en Enero 12, 2016, 02:11:46 AM
Niuweb
Ahi falta que los ataques que crea (al presionar X) el objeto cambien tambien de direccion ;)
Título: Re:Cambia
Publicado por: Sr. Gustavo en Enero 12, 2016, 02:13:34 AM
Tos?

Cita de: kostra en Enero 12, 2016, 02:05:24 AM
Cita de: Sr. Gustavo en Enero 12, 2016, 01:42:09 AM
User arriba
User Abajo
User izquierda
User derecha
(tós)
Título: Re:Cambia
Publicado por: bygdle en Enero 12, 2016, 02:15:13 AM
Tos

¿por qué me guiñes el ojo? no es mi culpa xD
Muestra el código que usas para atacar
Título: Re:Cambia
Publicado por: kostra en Enero 12, 2016, 02:25:19 AM
era una indirecta a Niu, porque te puso dos direcciones y tú pedías 4, dejemos de chatear, reglamento :B
Título: Re:Cambia
Publicado por: bygdle en Enero 12, 2016, 02:28:01 AM
Bueno, bueno xD, pues lo cambio, aunque básicamente es lo mismo:
[gml]
if keyboard_check(vk_left) //si se presiona la flechita izquierda
{
   x -= 5; //se mueve a la izquierda en una velocidad de 5px/step
   sprite_index = sprite_izquierda; //se cambia el sprite al sprite_izquierda
}

if keyboard_check(vk_right) //si se presiona la flechita derecha
{
   x += 5; //se mueve a la derecha en una velocidad de 5px/step
   sprite_index = sprite_derecha; //se cambia el sprite al sprite_derecha
}

if keyboard_check(vk_down) //si se presiona la flechita abajo
{
   y += 5; //se mueve hacia abajo en una velocidad de 5px/step
   sprite_index = sprite_abajo; //se cambia el sprite al sprite_abajo
}

if keyboard_check(vk_up) //si se presiona la flechita arriba
{
   y -= 5; //se mueve hacia arriba en una velocidad de 5px/step
   sprite_index = sprite_arriba; //se cambia el sprite al sprite_arriba
}
[/gml]
Título: Re:Cambia
Publicado por: Sr. Gustavo en Enero 12, 2016, 02:39:00 AM
Y ahora en el evento  Key pressed X (algo asi )
Crear Ataque 1 en tal dirección (dependiendo   por ejemplo si el  objeto tiene el sprite user arriba el ataque 1 tiene que irse para arriba)

PD:no usé codigo
Título: Re:Cambia
Publicado por: bygdle en Enero 12, 2016, 02:40:50 AM
Pues si no usaste código tendrás que usarlo.
Dame información. ¿Qué es el "ataque"? ¿Cómo funciona? ¿necesita velocidad? ¡todo!, porque decir "Crear Ataque 1 en tal dirección" no dice mucho.
Título: Re:Cambia
Publicado por: Sr. Gustavo en Enero 12, 2016, 02:46:04 AM
Al presionar X crea un objeto en movimiento (3 de speed) llamado ataque 1.
Este se crea relativo al objeto user y lo lanza en dirección 180
Pero si el sprite es user arriba quiero que lo lanze en dirección 0
Título: Re:Cambia
Publicado por: kostra en Enero 12, 2016, 02:47:04 AM
usas 4 sprites que son totalmente distintos, o usas 4 sprites de lo mismo pero en 4 direcciones?
Título: Re:Cambia
Publicado por: bygdle en Enero 12, 2016, 02:50:10 AM
[GML]
///Evento Press X
var dir;
if sprite_index = sprite_derecha
dir = 0;
if sprite_index = sprite_izquierda
dir = 180;
if sprite_index = sprite_arriba
dir = 90;
if sprite_index = sprite_abajo
dir = 270;

with instance_create(x,y, objetoAtaque)
{
speed = 3;
direction = dir;
}
[/GML]
Título: Re:Cambia
Publicado por: Sr. Gustavo en Enero 12, 2016, 02:51:20 AM
Diferentes sprites


Título: Re:Cambia
Publicado por: Sr. Gustavo en Enero 12, 2016, 02:53:36 AM
Grasias  :love: y ves que al final no era tan facil
Título: Re:Cambia
Publicado por: bygdle en Enero 12, 2016, 02:55:43 AM
Cita de: Sr. Gustavo en Enero 12, 2016, 02:53:36 AM
Grasias  :love: y ves que al final no era tan DIFIcil
Eso es la 2 cosa más preguntada y fácil de hacer en GML, sólo que si dices "quiero que ataque mirando a la dirección" no se sabe qué pátanos quieres en realidad
Título: Re:Cambia
Publicado por: Sr. Gustavo en Enero 12, 2016, 03:00:29 AM
Jajja me parece que tu no leistes bien al principio
Título: Re:Cambia
Publicado por: kostra en Enero 12, 2016, 03:02:57 AM
era = "dificil";
esrealmente = string_replace(era,"difi","fa");
show_message(esrealmente);
Título: Re:Cambia
Publicado por: bygdle en Enero 12, 2016, 03:05:35 AM
Cita de: Sr. Gustavo en Enero 12, 2016, 01:42:09 AM
Y que tambien los ataques vayan hacia la izquierda y lo mismo para la derecha, arriba y abajo
¿Te refieres a eso?
Recuerda que estamos hablando de un lenguaje de programación completo. Decir "los ataques" no dice nada. Puede ser crear un objeto "ataque", puede ser gastar una varialbe "salud", puede ser un complejo sistema de combates, puede ser infinitas cosas.
Cuando preguntes cosas acerca de la programación (cualquier lenguaje) acostúmbrate a usar léxico del lenguaje en el que progamas para ayudar a solucionar tu duda más rápido...
"Ataque en esa dirección" = "Cree una instancia con dirección dependiendo del sprite"
Título: Re:Cambia
Publicado por: Sr. Gustavo en Enero 12, 2016, 03:09:18 AM
Soy nuevo no me regañes
Quiero citar el reglamento b
Título: Re:Cambia
Publicado por: bygdle en Enero 12, 2016, 03:11:52 AM
No te regañé xD, sólo te dije que especifiques un poco más las cosas cuando preguntes

PD:
Cita de: Sr. Gustavo en Enero 12, 2016, 03:09:18 AM
Quiero citar el reglamento b
¿GUAT?

Si se ha solucionado tu problema, deberías modificar el título del mensaje agregando [solucionado] antes del título para ayudar a futuras personas que tengan el mismo problema
Título: Re:Cambia
Publicado por: kostra en Enero 12, 2016, 03:12:08 AM
Trankilo Sr. Gustavo, solo hacemos más ameno el foro, nunca nos tomes en serio, buen royo, aquí estamos para lo que necesites ;)

PD: EDITO: WAT? personas que tengan el mismo problema, siaquí NADIE BUSCA!! XD
Título: Re: {Resuelto} Cambia de sprites y de direccion de ataque
Publicado por: Sr. Gustavo en Enero 12, 2016, 03:20:55 AM
Jajajajajaja Ahora me paseare por el foro y ayudare a aquellos que necesiten la ayuda de un experto como yo.

PD: se escribe what
Título: Re: {Resuelto} Cambia de sprites y de direccion de ataque
Publicado por: bygdle en Enero 12, 2016, 03:22:40 AM
Se escribe gracias
Se escribe leíste
xD, me voy antes de que me cuelguen por troll xD