Modo 2 botones y Joysticks

For all things Churrera. ¿Estás haciendo un juego? ¿quieres proponer un cambio? ¿tienes alguna duda? ¡Cuéntanoslo!

Moderador: na_th_an

Avatar de Usuario
son_link
Mensajes: 467
Registrado: Mar, 01 Oct 2013, 11:49
Ubicación: Atlantis, Galaxia Pegaso
Contactar:

Modo 2 botones y Joysticks

Mensajepor son_link » Mar, 17 Dic 2013, 14:18

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?
LOAD TAPE ERROR
Image
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Modo 2 botones y Joysticks

Mensajepor na_th_an » Mar, 17 Dic 2013, 16:19

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.
Como diría Rorshach: "Urm..."
Avatar de Usuario
son_link
Mensajes: 467
Registrado: Mar, 01 Oct 2013, 11:49
Ubicación: Atlantis, Galaxia Pegaso
Contactar:

Re: Modo 2 botones y Joysticks

Mensajepor son_link » Mar, 17 Dic 2013, 16:50

$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)
LOAD TAPE ERROR
Image