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.
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?
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?