Buenas gente, os cuento.
Como ya sabréis mi jugo, Sami Troid uso el modo de 2 botones, modo que no va en los joysticks. ¿como puedo hacer que en ese modo el salto sea cuando pulsa arriba?
Modo 2 botones y Joysticks
Moderador: na_th_an
Re: Modo 2 botones y Joysticks
Opino que saltar pulsando arriba en el joystick hace que un juego sea totalmente injugable. Por defecto, si tienes el disparo activado, saltar se mueve a la posición de "arriba" y disparar al botón, pero esto es incompatible con la directiva que activa WASDMN.
Puede intentar hacerse un apaño parcheando un poco el código, pero no sé si tendrá efectos colaterales. Busca esto en engine.h, a partir de 785
$this->bbcode_second_pass_code('', '#elif defined (PLAYER_CAN_FIRE) && defined (USE_TWO_BUTTONS)
#ifdef PLAYER_CUMULATIVE_JUMP
if (sp_KeyPressed (key_jump) && (possee || player.gotten)) {
player.vy = -player.vy - PLAYER_VY_INICIAL_SALTO;
if (player.vy < -PLAYER_MAX_VY_SALTANDO) player.vy = -PLAYER_MAX_VY_SALTANDO;
#else
if (sp_KeyPressed (key_jump) && player.saltando == 0 && (possee || player.gotten)) {
#endif
player.saltando = 1;
player.cont_salto = 0;
peta_el_beeper (3);
}
#ifndef PLAYER_CUMULATIVE_JUMP
if (sp_KeyPressed (key_jump) && player.saltando ) {
player.vy -= (PLAYER_VY_INICIAL_SALTO + PLAYER_INCR_SALTO - (player.cont_salto>>1));
if (player.vy < -PLAYER_MAX_VY_SALTANDO) player.vy = -PLAYER_MAX_VY_SALTANDO;
player.cont_salto ++;
if (player.cont_salto == 8)
player.saltando = 0;
}
#endif
if (!sp_KeyPressed (key_jump))
player.saltando = 0;')
Siempre que ponga "sp_KeyPressed (key_jump)" en este trozo remplázalo por "(sp_KeyPressed (key_jump) || ((gpit & sp_UP) == 0))". Cuidado con los paréntesis. Un find & replace debería ser lo más seguro.
Ahora mismo estoy en proceso de mejorar toda esa parte, por cierto.
Puede intentar hacerse un apaño parcheando un poco el código, pero no sé si tendrá efectos colaterales. Busca esto en engine.h, a partir de 785
$this->bbcode_second_pass_code('', '#elif defined (PLAYER_CAN_FIRE) && defined (USE_TWO_BUTTONS)
#ifdef PLAYER_CUMULATIVE_JUMP
if (sp_KeyPressed (key_jump) && (possee || player.gotten)) {
player.vy = -player.vy - PLAYER_VY_INICIAL_SALTO;
if (player.vy < -PLAYER_MAX_VY_SALTANDO) player.vy = -PLAYER_MAX_VY_SALTANDO;
#else
if (sp_KeyPressed (key_jump) && player.saltando == 0 && (possee || player.gotten)) {
#endif
player.saltando = 1;
player.cont_salto = 0;
peta_el_beeper (3);
}
#ifndef PLAYER_CUMULATIVE_JUMP
if (sp_KeyPressed (key_jump) && player.saltando ) {
player.vy -= (PLAYER_VY_INICIAL_SALTO + PLAYER_INCR_SALTO - (player.cont_salto>>1));
if (player.vy < -PLAYER_MAX_VY_SALTANDO) player.vy = -PLAYER_MAX_VY_SALTANDO;
player.cont_salto ++;
if (player.cont_salto == 8)
player.saltando = 0;
}
#endif
if (!sp_KeyPressed (key_jump))
player.saltando = 0;')
Siempre que ponga "sp_KeyPressed (key_jump)" en este trozo remplázalo por "(sp_KeyPressed (key_jump) || ((gpit & sp_UP) == 0))". Cuidado con los paréntesis. Un find & replace debería ser lo más seguro.
Ahora mismo estoy en proceso de mejorar toda esa parte, por cierto.
Como diría Rorshach: "Urm..."
- son_link
- Mensajes: 467
- Registrado: Mar, 01 Oct 2013, 11:49
- Ubicación: Atlantis, Galaxia Pegaso
- Contactar:
Re: Modo 2 botones y Joysticks
$this->bbcode_second_pass_quote('na_th_an', 'O')pino que saltar pulsando arriba en el joystick hace que un juego sea totalmente injugable. Por defecto, si tienes el disparo activado, saltar se mueve a la posición de "arriba" y disparar al botón, pero esto es incompatible con la directiva que activa WASDMN.
Hay juegos en los que había que hacerlo así, como en Robocop 2 por ejemplo. La otra opción seria desactivar el soporte para los joysticks, así ademas se podría ganar unos bits.
$this->bbcode_second_pass_quote('na_th_an', 'A')hora mismo estoy en proceso de mejorar toda esa parte, por cierto.
Pues si eso en un futuro añado esa mejora al juego, que quiero terminarlo antes de que se acabe el año.
Voy a seguir con el de momento con WASDMN, que a mi me resulta cómodo de jugar así (sera por la costumbre ya)