Detección de Joysticks en OUYA

Started by JaViS, November 21, 2013, 02:25:32 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JaViS

Buenas,


Estoy probando Bennu con mas de un joystick en OUYA y me estoy enfrentando a algunos problemitas.


El primero es que si prendo un joystick con el juego ya andando, no me lo reconoce, y si aprieto un boton en el joystick recien prendido, bennu se sale.


El segundo es que a veces el programa se sale, cuando tengo el joystick 2 o el 4 prendido (no me pregunten porque).


Basicamente mis preguntas son:


¿Como detectar que un joystick se ha prendido durante el juego?


¿Alguien mas esta teniendo problemas con los joysticks?

Edit: Estoy compilando con el Bennu que trae la plantilla de pixel.

Gracias!
Working on Anarkade. A couch multiplayer 2D shooter.

panreyes

Creo que esa pregunta va un poco a medias para Josebita y para mí.


Si te fijas en mi plantilla, en OUYA no averiguo cuantos joys hay conectados. Podría hacerse, pero prefiero dejarlo en posibles_jugadores=4 y que sean los conscientes los que elija el número de jugadores.


Creo que el método ideal es hacer que los jugadores pulsen un botón en el mando, detectarlo y asignarlo a un jugador, tal como hacen Bombsquad y Towerfall

JaViS

Quote from: PiXeL on November 21, 2013, 02:40:39 PM
Creo que el método ideal es hacer que los jugadores pulsen un botón en el mando, detectarlo y asignarlo a un jugador, tal como hacen Bombsquad y Towerfall


Si, eso sería lo ideal. Lo que me preocupa es que generalmente se entra al juego desde un joystick y los demas jugadores los van prendiendo a medida que se van uniendo, por eso sería un feature a tener en cuenta.


De todos modos, lo mas complicado ahora es que el juego se me salga al prender o tocar algun boton de joystick, estoy haciendo varias pruebas y los resultados no tienen mucho sentido, me gustaria saber si a alguien mas le esta pasando.
Working on Anarkade. A couch multiplayer 2D shooter.

JaViS


Chicos, acabo de hacer este codigo para debuguear joysticks, funciona en pc y ouya, podrian checkearlo uds para decirme si les detecta bien los joystick y si no tienen problemas?


gracias!



import "mod_video"
import "mod_map"
import "mod_draw"
import "mod_say"
import "mod_file"
import "mod_text"
import "mod_wm"
import "mod_multi"
import "mod_mouse"
import "mod_joy"


GLOBAL




Process Main()
Private
// Set to your liking
dsx  = 600;
dsy = 800;
i,j,value;
string num_joys_text, joys_status[3];
Begin
    get_desktop_size(&dsx, &dsy);
scale_resolution = dsx * 10000 + dsy ;
scale_resolution_aspectratio = SRA_PRESERVE;

set_mode(640,360,16);
   

write_string(0, 320, 0, 2, &num_joys_text);
write_string(0, 320, 10, 2, &joys_status[0]);
write_string(0, 320, 20, 2, &joys_status[1]);
write_string(0, 320, 30, 2, &joys_status[2]);
write_string(0, 320, 40, 2, &joys_status[3]);


    while(focus_status)

num_joys_text = "Joys detected: "+joy_numjoysticks();

for (i=0;i< joy_numjoysticks();i++)
joys_status[i] = "Joy "+i+":";

    for (j=0;j < joy_numbuttons (i); j++)
        if(joy_getbutton(i,j))
                    joys_status[i] += " Button "+j+".";
                end
    end
   
    for (j=0;j < joy_numaxes (i); j++)
        if(joy_getaxis(i,j)<-20000);
                    joys_status[i] += " Axis "+j+" -.";
                end               
                if(joy_getaxis(i,j)>20000);
                    joys_status[i] += " Axis "+j+" +.";
                end
    end
   
    for (j=0;j < joy_numhats(i); j++)
        if(value=JOY_GETHAT(i,j))
                    joys_status[i] += " HAT "+j+": " + value;
                end
    end
end
frame;
end
End;


Working on Anarkade. A couch multiplayer 2D shooter.

JaViS

Bueno, con el programita de arriba acabo de detectar los siguientes problemas:


       
  • [size=78%]el primero es que si tenes un airmouse o un teclado enchufado te lo toma como joystick.[/size]
  • [/size][size=78%]si enchufas un joystick salteandote otro, como por ejemplo, prender los joys 1,3 y 4. el programa asigna mal el orden de los joysticks enchufados y se sale si apretas algun boton.[/size]

Un ejemplo del segundo problema fue que prendi el 1,3 y 4, y me los asignó como 1,4 y 2 respectivamente. El 1 y el 3 funcionaban bien, pero si aprieto un boton en el 4, el programa se sale.


Bueno, ojala sean problemitas que se puedan solucionar. :)

Working on Anarkade. A couch multiplayer 2D shooter.

josebita

Hola:

Así una lectura rápida de tu primer post (¡perdón!) anoto un par de cosas:
* Bennu construye la lista de joysticks al inicio y no se actualiza durante la ejecución del juego.
* SDL 2 soporta conectar/desconectar joysticks durante la ejecución, pero no en Android.
* No está bien que casque en Android...

JaViS

Crees que sea algo que se pueda arreglar?


por otro lado, estaba pensando, que pasa si en lugar de detectarlo al inicio Bennu lo hace todo el tiempo? es muy lerdo?
Working on Anarkade. A couch multiplayer 2D shooter.

FreeYourMind

mejor una funcion que llames cuando quieras

JaViS

Working on Anarkade. A couch multiplayer 2D shooter.

josebita

Quote from: JaViS on November 22, 2013, 12:26:12 PM
Crees que sea algo que se pueda arreglar?


por otro lado, estaba pensando, que pasa si en lugar de detectarlo al inicio Bennu lo hace todo el tiempo? es muy lerdo?
Eso es fácil con SDL2, pero no sé si puedo hacerlo manteniendo la compatibilidad con el bennu oficial...

JaViS

Yo creo que eventualmente pasarse a SDL2 va a ser parte del plan, por lo que no me parece mala idea ir implementandolo. De paso, si a Splinter le convence, puede agregarlo a la rama oficial


De todos modos, lo que mas me preocupa es que el juego se salga usando mas de un joystick.
Working on Anarkade. A couch multiplayer 2D shooter.

JaViS

Pixel, vos no tuviste ningun problema con el pixFrog? has probado conectar los joysticks como describo?


Un abrazo
Working on Anarkade. A couch multiplayer 2D shooter.

panreyes

Me lo comentaron. Si conectas o desconectas USBs en juegos BennuGD, falla. Pero creo que es algo normal y que también ocurre en otros engines.

JaViS

Quote from: PiXeL on November 27, 2013, 03:17:29 PM
Me lo comentaron. Si conectas o desconectas USBs en juegos BennuGD, falla. Pero creo que es algo normal y que también ocurre en otros engines.


Sep, eso ya lo sabia, pero me refiero a conectar menos de 4 joysticks en orden raro, como por ejemplo, poner el 12 y 4, o el 1 3 y 4, de esa forma el juego se me sale cuando aprieto algun joystick
Working on Anarkade. A couch multiplayer 2D shooter.

panreyes

¿Podrías comprobar si también ocurre con alguno de mis juegos en OUYA?