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

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}

pero ese codigo va en el evento del boton presionado? o en el eento step?

Esa accion puede ser colocado o en el evento Step o en alguna colission

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.

Checa mi canal de Youtube para tutoriales y charlas sobre desarrollo de videojuegos.


#5 Abril 29, 2010, 09:03:54 PM Ultima modificación: Abril 29, 2010, 09:07:03 PM por ASMD
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

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.

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);
}

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?

#9 Mayo 05, 2010, 04:02:52 PM Ultima modificación: Mayo 05, 2010, 04:05:16 PM por ASMD
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
}


pues despues de un rato me decidi a subir el archivo, pues ayudenme con esto si?

perdon por el doble post, pero alguien me podria desir que paso?