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!
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
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.
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;
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. :)
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...
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?
mejor una funcion que llames cuando quieras
Quote from: FreeYourMind on November 23, 2013, 03:33:58 PM
mejor una funcion que llames cuando quieras
Esa es buena! :D
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...
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.
Pixel, vos no tuviste ningun problema con el pixFrog? has probado conectar los joysticks como describo?
Un abrazo
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.
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
¿Podrías comprobar si también ocurre con alguno de mis juegos en OUYA?
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 ;)
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?
Pregunta: ¿Utilizas mi código de controladores u otro?
Es el PRG que postie, simplemente las funciones de bennu :S
Moraleja: Usa mis controladores xD Además, en breve tendrán soporte para gamepads en red en móviles Android xD
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.
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)
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?