Enero 12, 2016, 01:42:09 AM Ultima modificación: Enero 12, 2016, 03:15:36 AM por Sr. Gustavo
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
alaberga regué el café.

BA:STFW&RTFM

Cita de: Sr. Gustavo en Enero 12, 2016, 01:42:09 AM
User arriba
User Abajo
User izquierda
User derecha
(tós)
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

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
alaberga regué el café.

BA:STFW&RTFM

era una indirecta a Niu, porque te puso dos direcciones y tú pedías 4, dejemos de chatear, reglamento :B
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

#7 Enero 12, 2016, 02:28:01 AM Ultima modificación: Enero 12, 2016, 02:29:55 AM por NiuWeb
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]
alaberga regué el café.

BA:STFW&RTFM

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.
alaberga regué el café.

BA:STFW&RTFM

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?
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

[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]
alaberga regué el café.

BA:STFW&RTFM

Diferentes sprites



Grasias  :love: y ves que al final no era tan facil