Bennu Game Development

Foros en Español => Plataformas => Android => Topic started by: JaViS on November 21, 2013, 02:25:32 PM

Title: Detección de Joysticks en OUYA
Post by: JaViS on November 21, 2013, 02:25:32 PM
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!
Title: Re:Detección de Joysticks en OUYA
Post by: panreyes on November 21, 2013, 02:40:39 PM
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
Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on November 21, 2013, 03:53:01 PM
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.
Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on November 21, 2013, 08:36:58 PM

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;


Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on November 21, 2013, 09:03:55 PM
Bueno, con el programita de arriba acabo de detectar los siguientes problemas:


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. :)

Title: Re:Detección de Joysticks en OUYA
Post by: josebita on November 21, 2013, 10:44:30 PM
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...
Title: Re:Detección de Joysticks en OUYA
Post by: 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?
Title: Re:Detección de Joysticks en OUYA
Post by: FreeYourMind on November 23, 2013, 03:33:58 PM
mejor una funcion que llames cuando quieras
Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on November 23, 2013, 06:16:19 PM
Quote from: FreeYourMind on November 23, 2013, 03:33:58 PM
mejor una funcion que llames cuando quieras


Esa es buena! :D
Title: Re:Detección de Joysticks en OUYA
Post by: josebita on November 24, 2013, 08:30:38 PM
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...
Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on November 25, 2013, 07:30:40 PM
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.
Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on November 27, 2013, 01:16:08 PM
Pixel, vos no tuviste ningun problema con el pixFrog? has probado conectar los joysticks como describo?


Un abrazo
Title: Re:Detección de Joysticks en OUYA
Post by: panreyes 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.
Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on November 27, 2013, 03:30:51 PM
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
Title: Re:Detección de Joysticks en OUYA
Post by: panreyes on November 27, 2013, 03:42:18 PM
¿Podrías comprobar si también ocurre con alguno de mis juegos en OUYA?
Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on November 27, 2013, 03:45:42 PM
Quote from: PiXeL on November 27, 2013, 03:42:18 PM
¿Podrías comprobar si también ocurre con alguno de mis juegos en OUYA?


DUH!! buena idea ;)
Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on November 28, 2013, 01:49:38 PM
Quote from: JaViS on November 27, 2013, 03:45:42 PM
Quote from: PiXeL on November 27, 2013, 03:42:18 PM
¿Podrías comprobar si también ocurre con alguno de mis juegos en OUYA?


DUH!! buena idea ;)


Bueno, no he podido reproducir el bug en tu juego, es que acaso estoy haciendo algo mal en el PRG que adjunto? o es la version de Bennu?
Title: Re:Detección de Joysticks en OUYA
Post by: panreyes on November 28, 2013, 02:06:10 PM
Pregunta: ¿Utilizas mi código de controladores u otro?
Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on November 28, 2013, 02:25:58 PM
Es el PRG que postie, simplemente las funciones de bennu :S
Title: Re:Detección de Joysticks en OUYA
Post by: panreyes on November 28, 2013, 02:31:05 PM
Moraleja: Usa mis controladores xD Además, en breve tendrán soporte para gamepads en red en móviles Android xD
Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on November 28, 2013, 02:34:24 PM
Juaa, no, pero quiero entender, o sea, vos debes usar las mismas funciones, tengo miedo de que sea una cuestion de la version de bennu que se usa, o que sea una cosa que esta pasando solamente en mi ouya, por eso me gustaria que alguien mas pruebe eso en su ouya para confirmar.


O sea, no quiero embarcarme en un proyecto con una prueba tan tonta andando mal, quiero estar seguro de que 4, 3 y 2 joysticks andan bien en OUYA.


Ademas, el pixfrogger utiliza solamente un boton de cada joystick, y mucho me temo que no es una prueba suficiente como para asegurarse de que anda bien.
Title: Re:Detección de Joysticks en OUYA
Post by: panreyes on November 28, 2013, 02:46:19 PM
Prueba PiX Pang o PiX Bros para confirmar. Es posible que sea un bug del Java de BennuGD Android de Josebita.
Mi BennuGD lo tengo algo modificado (creo)
Title: Re:Detección de Joysticks en OUYA
Post by: JaViS on December 08, 2013, 03:47:05 PM
Bueno, al parecer el problema ocurre con mas de dos Joysticks, no se porque.


Básicamente puedo resumir el problema a que los joysticks en ouya se identifican con el numero con el que fueron paireados, que generalmente difiere al orden en que fueron prendidos (conectados). Todo anda bien cuando los joysticks se prenden en orden, pero cuando no se prenden en el orden 1,2,3,4, Bennu no los detecta bien y da errores.


Guys esto me esta preocupando, como puedo ayudarlos a resolver este problema?