Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: cristopher2545 en Junio 26, 2017, 09:35:20 AM

Título: Sistema de combate (Beat em up)
Publicado por: cristopher2545 en Junio 26, 2017, 09:35:20 AM
Hola a todos! eh estado trabajando en un sistema básico de combate para un beat em up y funciona muy bien pero el problema es cuando usas teclas que ya tienen una función asignada para un combo por ejemplo la tecla X da un puñetazo y la C una patada pero si presionas la X y C al mismo tiempo haces un ataque distinto y eso no funciona bien ya que el ataque sale cuando el sistema quiere. como hacer para desactivar teclas cuando haces un combo? ya saben al estilo de double dragon das un combo y las otras funciones se desactivan.. si alguien me puede ayudar a mejorar este sistema o alguien a experimentado con uno mejor se los agradecería mucho esto me ah tenido parado el proyecto

este es el código que uso

punch_k = keyboard_check_pressed(ord("X"))
kick_k =keyboard_check_pressed(ord("C"))
cover_k = keyboard_check(ord("V"))
down_k = keyboard_check(vk_down)
C1= keyboard_check_pressed(ord("C")) && keyboard_check_pressed(ord("X"))
C2= keyboard_check_pressed(ord("C")) && keyboard_check_pressed(vk_down)



if (C1) && atack=true && jump=false
{
state="codazo"
combo=true
punch=true
atack=false
v=0
h=0
run=false
image_index=0   
lock=true
}

if (C2) && atack=true && jump=false
{
state="down kick"
punch=true
combo=true
atack=false
v=0
h=0
run=false
image_index=0   
lock=true
}


if combo=false
{
if (punch_k) && atack=true && jump=false && state!="kick"
{
atack=false

punch=true
state="punch"
lock=true
image_index=0
h=0
v=0
}

if (kick_k) && atack=true && jump=false && state!="punch"
{
punch=true
state="kick"
atack=false
lock=true
image_index=0
h=0
v=0
}
}

Título: Re:Sistema de combate (Beat em up)
Publicado por: 3dgeminis en Junio 26, 2017, 10:38:15 PM
Tenes que hacerlo en cierto orden y forma

if X and C { }

else {
         if X { }
         if C { }
        }


Primero la combinacion de teclas y luego las teclas individuales, importante el else

if {combinaciones de teclas}
else {teclas individuales}

Título: Re:Sistema de combate (Beat em up)
Publicado por: lorenzo en Junio 27, 2017, 08:46:56 AM
puedes hacer algo asi

if keyboard_check_pressed(ord("C")) and !keyboard_check_pressed(ord("X"))
{
solo patada
}
else
{
combo
}
Título: Re:Sistema de combate (Beat em up)
Publicado por: cristopher2545 en Junio 28, 2017, 03:18:43 AM
Gracias por sus comentarios <3 pero ninguno funciono trate ambas opciones y el sistema lo hace cada que se le da la gana no es nada responsivo pero si le quito el "key pressed" funciona un poco mejor no se que podría ser
Título: Re:Sistema de combate (Beat em up)
Publicado por: Clamud en Junio 28, 2017, 05:15:09 AM
El problema es que se espera que el jugador oprima dos botones justo en el mismo frame, eso no siempre ocurre, por lo general un botón se presiona antes que el otro. Deberías revisar los botones durante varios frames (steps) antes de ejecutar la acción. Podría ser de esta forma:

1. Cuando se presiona un botón inicia un contador, si el contador llega al límite, se ejecuta la acción de ese botón.
2. Si el botón se libera antes de que el contador llegue al límite, también se ejecuta la acción del botón.
3. Si se detecta la presión del segundo botón antes de que el contador termine, se ejecuta la acción combinada.
Título: Re:Sistema de combate (Beat em up)
Publicado por: cristopher2545 en Julio 04, 2017, 01:52:13 AM
Cita de: Clamud en Junio 28, 2017, 05:15:09 AM
El problema es que se espera que el jugador oprima dos botones justo en el mismo frame, eso no siempre ocurre, por lo general un botón se presiona antes que el otro. Deberías revisar los botones durante varios frames (steps) antes de ejecutar la acción. Podría ser de esta forma:

1. Cuando se presiona un botón inicia un contador, si el contador llega al límite, se ejecuta la acción de ese botón.
2. Si el botón se libera antes de que el contador llegue al límite, también se ejecuta la acción del botón.
3. Si se detecta la presión del segundo botón antes de que el contador termine, se ejecuta la acción combinada.

gracias por responder <3 eh tratado un poco lo que me dijiste y nada probé todo lo que me han comentado y nada simplemente el personaje se niega a desactivar las teclas cuando detecta el combo