Autor Tema: Patada en el aire  (Leído 134 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Neodreamer

  • Asiduo
  • *
  • Puntos: 208
  • Mensajes: 113
    • Ver Perfil
Patada en el aire
« en: Marzo 19, 2017, 01:32:51 pm »
Hola estoy haciendo un juego de peleas/bet em up  y no se hacer que mi personaje realice una patada cuando esta saltado ala vez.Me explico mejor ;D lo quiero es hacer una patada cuando salte, pero con el mismo boton que tengo para dar los puñetazos el boton x y no se hacerlo  haber si me podeis ayudar gracias.


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Clamud

  • Okupa
  • *
  • Puntos: 1497
  • Mensajes: 1.374
  • Sexo: Masculino
  • "la vida no vale nada"
    • Ver Perfil
Re:Patada en el aire
« Respuesta #1 en: Marzo 19, 2017, 05:02:04 pm »
¿Qué método utilizas para poner al personaje en el aire?
El personaje podría funcionar como una máquina de estados. El evento de presión del botón podría ser así:
if( en_aire ) ESTADO = PATADA;
else ESTADO = PUNO;


Desconectado Neodreamer

  • Asiduo
  • *
  • Puntos: 208
  • Mensajes: 113
    • Ver Perfil
Re:Patada en el aire
« Respuesta #2 en: Marzo 19, 2017, 06:29:29 pm »
Hola compi clamud efectivamente uso una maquina de estados este es el tutorial que estoy siguendo :https://www.youtube.com/playlist?list=PLiplYDjUMtthkY440n-pWCf5anHYQUc_o .Y este el "estado" donde salta :
///st_billy_jump
if(state_new)
{                               // Primer fotograma al cambiar de estado   
                                sprite_index=sp_billy_jump;
                                mask_index = sp_billy_nomask;
                                image_index=0;
                                image_speed=0.25;
                                y_start=y;
}                               
                                // Detectar cambio de lado del sprite   
if (-left_held+right_held!=0)   image_xscale=-left_held+right_held;
                               
if(image_index <=               // Procesar salto hacia arriba/abajo
    image_number/2)             y_speed = -jump_speed;
else                            y_speed = jump_speed;
if(y_speed!=0)                  y = clamp(y + y_speed, 0, y_start);

                                // Detectar movimiento horizontal
                                jump_side=-left_held+right_held;
                                increase_x(jump_side * h_speed);     
                                   
if(image_index >=
    image_number-image_speed)
{                               //Cambio de estado
                                mask_index = sp_billy_mask;
                                state_switch_previous();
                                y = y_start;
}
///// variables;
jump_speed = 5;
punch_press=false;
/// EVENTO STEP ;
jump_press=keyboard_check_pressed(ord('C'));
punch_press=keyboard_check_pressed(ord('X'));

NO tengo mucha idea por que aun no programo muy bien y me cuesta mucho entnder el gml. XD.gracias

Desconectado Clamud

  • Okupa
  • *
  • Puntos: 1497
  • Mensajes: 1.374
  • Sexo: Masculino
  • "la vida no vale nada"
    • Ver Perfil
Re:Patada en el aire
« Respuesta #3 en: Marzo 20, 2017, 04:16:24 pm »
He visto pocos fragmentos de los videos. Lo que debes hacer es crear un nuevo estado en un bloque de código (llámalo como quieras, por ejemplo "aerial_kick").

En el estado jump revisa la presión del botón para cambiar al estado aerial_kick
if( kick_press ) state_switch( "aerial_kick" );

El código que se que se ejecuta en ese estado depende de qué propiedades le quieres dar a la patada, por lo menos debe tener este bloque
if( state_new )
{
// ...
}
para asignar el sprite, la máscara de colisión, la velocidad de animación y otras variables, como se hace en los otros estados.

Desconectado Neodreamer

  • Asiduo
  • *
  • Puntos: 208
  • Mensajes: 113
    • Ver Perfil
Re:Patada en el aire
« Respuesta #4 en: Marzo 21, 2017, 12:05:03 am »
Hola perdona compi clamud no te entiendo muy bien .¿ Podrias explicarlo un poco mejor?.GRACIAS.