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
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
Cita de: Sr. Gustavo en Enero 12, 2016, 01:42:09 AM
User arriba
User Abajo
User izquierda
User derecha
(tós)
Niuweb
Ahi falta que los ataques que crea (al presionar X) el objeto cambien tambien de direccion ;)
Tos
¿por qué me guiñes el ojo? no es mi culpa xD
Muestra el código que usas para atacar
era una indirecta a Niu, porque te puso dos direcciones y tú pedías 4, dejemos de chatear, reglamento :B
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]
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
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.
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
usas 4 sprites que son totalmente distintos, o usas 4 sprites de lo mismo pero en 4 direcciones?
[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]
Diferentes sprites
Grasias :love: y ves que al final no era tan facil
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
Jajja me parece que tu no leistes bien al principio
era = "dificil";
esrealmente = string_replace(era,"difi","fa");
show_message(esrealmente);
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"
Soy nuevo no me regañes
Quiero citar el reglamento b
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
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
Jajajajajaja Ahora me paseare por el foro y ayudare a aquellos que necesiten la ayuda de un experto como yo.
PD: se escribe what
Se escribe gracias
Se escribe leíste
xD, me voy antes de que me cuelguen por troll xD