Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: evilwolv en Abril 28, 2010, 07:20:15 AM

Título: como puedo hacer movimientos complejos?
Publicado por: evilwolv en Abril 28, 2010, 07:20:15 AM
no tengo ni idea de como hacer mocimientos complejos,desde la combinacion de dos botones hasta hacer el calasico hadouken. alguna idea? algun post relacionado? de ser asi me lo podrian indicar? ya que no encuentro ninguno
Título: Re: como puedo hacer movimientos complejos?
Publicado por: krajtin en Abril 28, 2010, 03:06:38 PM
Si quieres que tu personaje haga alguna accion presionando dos botones a la vez utiliza este codigo

if  keyboard_check(vk_left) && keyboard_check_direct(vk_up){
    vspeed=-2}
Título: Re: como puedo hacer movimientos complejos?
Publicado por: evilwolv en Abril 28, 2010, 07:54:15 PM
pero ese codigo va en el evento del boton presionado? o en el eento step?
Título: Re: como puedo hacer movimientos complejos?
Publicado por: krajtin en Abril 28, 2010, 09:17:45 PM
Esa accion puede ser colocado o en el evento Step o en alguna colission
Título: Re: como puedo hacer movimientos complejos?
Publicado por: Jucarave en Abril 28, 2010, 09:25:32 PM
Pero ese codigo solo sirve para presionar teclas al mismo tiempo...

Recuerdo que para hacer un juego de pelea hace tiempo hice esto.

EV_CREATE:
Combo = "";

EV_STEP:

if (keyboard_check_pressed(ord('A')){ Combo += "A"; alarm[0] = fps; }
if (keyboard_check_pressed(ord('S')){ Combo += "S"; alarm[0] = fps; }
if (keyboard_check_pressed(ord('D')){ Combo += "D"; alarm[0] = fps; }
if (keyboard_check_pressed(ord('W')){ Combo += "W"; alarm[0] = fps; }
if (keyboard_check_pressed(ord('I')){ Combo += "I"; alarm[0] = fps; }

if (Combo = "ASDI")
{
      //Ejecutas los codigos del combo;
      Combo = "";
}



EV_ALARM[0]:

Combo = "";








Esto le dara tiempo al jugador para hacer la combinacion de teclas, y si se tarda mas de un segundo entre tecla y tecla, no lo podra hacer.

Creo que asi funcionaria, cualquier duda avisas.
Título: Re: como puedo hacer movimientos complejos?
Publicado por: ASMD en Abril 29, 2010, 09:03:54 PM
Cita de: Jucarave en Abril 28, 2010, 09:25:32 PM
Pero ese codigo solo sirve para presionar teclas al mismo tiempo...

Recuerdo que para hacer un juego de pelea hace tiempo hice esto.

EV_CREATE:
Combo = "";

EV_STEP:

if (keyboard_check_pressed(ord('A')){ Combo += "A"; alarm[0] = fps; }
if (keyboard_check_pressed(ord('S')){ Combo += "S"; alarm[0] = fps; }
if (keyboard_check_pressed(ord('D')){ Combo += "D"; alarm[0] = fps; }
if (keyboard_check_pressed(ord('W')){ Combo += "W"; alarm[0] = fps; }
if (keyboard_check_pressed(ord('I')){ Combo += "I"; alarm[0] = fps; }

if (Combo = "ASDI")
{
     //Ejecutas los codigos del combo;
     Combo = "";
}



EV_ALARM[0]:

Combo = "";








Esto le dara tiempo al jugador para hacer la combinacion de teclas, y si se tarda mas de un segundo entre tecla y tecla, no lo podra hacer.

Creo que asi funcionaria, cualquier duda avisas.


Resumiendo en algo m?s sencillo y r?pido...
Create:
combo=""; //Desde un principio, no hay combo
sec=1; //El combo se desvanecer? en un segundo si no se presionan las teclas


Step:

combo=string_upper(keyboard_string); //Actualizamos el Combo
alarm[0]=room_speed*sec; //Activamos el desvanecimiento

switch(combo){ //Posibilidades de combo
case "XZA": //En caso de tener XZA
// Combo de XZA
break;
case "DXA": //En caso de tener DXA
// Combo de DXA
break;
}


Alarm[0]:
combo=""; //Reseteamos el combo
Título: Re: como puedo hacer movimientos complejos?
Publicado por: evilwolv en Mayo 01, 2010, 06:07:43 AM
pues no se como utilizar las alarmas aun,y pues me pasa algo medi extra?o, al momento de presionar la tecal abajo y presionar el bototn de acxion se supone que deberia de salir el latigazo agachado, pero no me respeta el prog y se pra el monillo a tirar el latigazo.

if not place_free(x,y+1) and sprite_index=pres_down
{
sprite_index=lat_ag {image_index=0;  image_speed=1; instance_create(x,y-3,latigo);}
}

ese es el codigo que tengo, pero no me va.
Título: Re: como puedo hacer movimientos complejos?
Publicado por: ASMD en Mayo 01, 2010, 12:14:14 PM
Cita de: evilwolv en Mayo 01, 2010, 06:07:43 AM
pues no se como utilizar las alarmas aun,y pues me pasa algo medi extra?o, al momento de presionar la tecal abajo y presionar el bototn de acxion se supone que deberia de salir el latigazo agachado, pero no me respeta el prog y se pra el monillo a tirar el latigazo.

if not place_free(x,y+1) and sprite_index=pres_down
{
sprite_index=lat_ag {image_index=0;  image_speed=1; instance_create(x,y-3,latigo);}
}

ese es el codigo que tengo, pero no me va.
Reordenemos y simplifiquemos un poco tu c?digo :

if (!place_free(x,y+1) && sprite_index=pres_down){
sprite_index=lat_ag;
image_index=0; image_speed=1; instance_create(x,y-3,latigo);
}
Título: Re: como puedo hacer movimientos complejos?
Publicado por: evilwolv en Mayo 04, 2010, 05:01:38 PM
lo veo igual solo por los corchetes y unos parentesis por ahi, pero por que no va, use el mismo codigo para cuandoi el mono esta de pie y asi si funciona, el unico problema es que esta agachado y lo hace a que se debe?
Título: Re: como puedo hacer movimientos complejos?
Publicado por: ASMD en Mayo 05, 2010, 04:02:52 PM
Cita de: evilwolv en Mayo 04, 2010, 05:01:38 PM
lo veo igual solo por los corchetes y unos parentesis por ahi, pero por que no va, use el mismo codigo para cuandoi el mono esta de pie y asi si funciona, el unico problema es que esta agachado y lo hace a que se debe?
No s?. Si se queda parado puede ser por que el c?digo est? mal posicionado. Es decir, deber?as reiniciar la animaci?n (primera frame y luego que la velocidad fuese 1) y luego indicar la nueva animaci?n. Quiero decir :
if (!place_free(x,y+1) && sprite_index==pres_down){
image_index=0; image_speed=1; //Reiniciamos la animaci?n y le damos velocidad de animaci?n
sprite_index=lat_ag; //Cambiamos de animaci?n
instance_create(x,y-3,latigo); //Creamos el l?tigo
}

Aunque deber?a dar igual. Si puedes pasarnos el editable para ver si alg?n otro c?digo interfiere en que este se ejecute correctamente, mejor.
La otra manera ser?a verificar si la instancia de l?tigo existe.
if (!place_free(x,y+1) && sprite_index==pres_down){
instance_create(x,y-3,latigo); //Creamos el l?tigo
}

if(instance_exists(latigo)){
image_index=0; image_speed=1; //Reiniciamos la animaci?n y le damos velocidad de animaci?n
sprite_index=lat_ag; //Cambiamos de animaci?n
}

Título: Re: como puedo hacer movimientos complejos?
Publicado por: evilwolv en Mayo 13, 2010, 02:05:51 AM
pues despues de un rato me decidi a subir el archivo, pues ayudenme con esto si?
Título: Re: como puedo hacer movimientos complejos?
Publicado por: evilwolv en Mayo 20, 2010, 04:45:36 PM
perdon por el doble post, pero alguien me podria desir que paso?