Agosto 04, 2015, 09:35:20 PM Ultima modificación: Agosto 20, 2015, 04:27:26 PM por Marth
Verán, me he encontrado con que GMS tiene 2 tipos de funciones para el uso de mandos en el juego: las funciones tipo "joystick_" y las tipo "gamepad_". Parece ser que las gamepad están pensadas para mandos de Xbox mientras que para otros tipos de mandos están las joystick.
Como yo utilizo para jugar en el PC un mando que es una imitación de los "dual shock" de las Play Station, utilizo funciones joystick y así puedo jugar a mis juegos usando ese mando sin ningún contratiempo, pero me estoy encontrando con algunos problemas respecto a gente que ha probado mis juegos...

Si el mando si es tipo "PS Control Pad" (el primer tipo de mando de las Play Station, las que aun no tenían palancas), el control da errores que hace que se este "pulsando" constantemente los botones "izquierda" y "arriba" de la cruceta.
Ademas, a algunos que si tienen mandos de xbox (360, concretamente) el juego no ha reconocido el movimiento del mando a pesar de haber añadido funciones tipo gamepad para que tambien pudiesen jugar.

Aparte de que yoyogames pula mejor las funciones, ¿que podría hacer para que la gente que tiene mando sin palancas analogicas o usen los mandos de las xbox puedan jugar sin problemas?


Cita de: penumbra en Agosto 04, 2015, 10:18:14 PM
http://www.comunidadgm.org/preguntas-y-respuestas/compatibilidad-con-gamepad/msg113539/#msg113539

http://www.x360ce.com/default.aspx

Descargue el emulador, pero me dan varios errores cuando intento ejecutarlo. :-X

A parte, veo que me he metido en otra chapuza para solucionar un contratiempo: uso de emuladores para poder jugar utilizando mandos.
¡La próxima que necesite ayuda con Game Maker iré a pedírsela a Pepe Gotera y Otilio! XD

No sé a qué se deberá, a mi me funciona sin problemas. Más que chapuza, a mi me parece una solución el uso del emulador, incluso muchos usuarios que tienen controles de Playstation o genéricos lo usan con juegos AAA. Así que si sirve para juegos "de más categoría" no veo por qué no usarlo con GMS.

Sobre las funciones gamepad, yo las he probado con controles originales de xbox y con controles que no son de microsoft pero que soportan la conexión a xbox 360 y en ambos casos funcionan. También se puede implementar código en GML para detectar si el mando es un mando que soporte las funciones gamepad o si es un mando genérico y en tal caso decidir si se usan las funciones gamepad o las joystick.

#4 Agosto 05, 2015, 12:27:01 AM Ultima modificación: Agosto 05, 2015, 12:52:28 AM por Marth
Por cierto, ahora ha salido otro diciendo que puede jugar usando mandos de Xbox, ¡pero la cruceta siempre desviá hacia arriba-izquierda, como al del mando tipo Play Station sin palancas analógicas!
Por lo visto, a cada cual, los mandos le funciona de forma distinta...

¿Los ejes te devuelven -1 o es un valor pequeño?
Es un comportamiento muy extraño, también lo he encontrado al dejar desativadas las palancas analógicas en el mando.
Si las funciones de ejes te devuelven un valor pequeño, la solución es usar una zona muerta.

¿Sería posible ver el código con el cual lees el joystick? ¿Mapeas el joystick a las teclas correspondientes?


No sé si le servirá a alguien pero hace tiempo programé el AllInOneFYC.
Se trata de un programita que sirve para remapear teclas/botones ademñas de muchas otras cosas como lanzar procesos, matarlos, subir el volumen del PC, bajarlo, etc, etc pulsando botones o teclas o combinaciones de ellas.

Saludos

Es problema del emulador y su configuracion o del mando en si, por la sensibilidad del mismo, en su dia intente jugar con mando de ps3 al kingdom hearts de la ps2 emulador ps2 y el personaje se me iba todo el rato hacia un lado si no tocaba nada, me pasaba con todos los juegos al que intentaba jugar con el mando de ps3.
Los limites los pones tu

Adjunto un exportable en el cual se puede mover una nave con la palanca del mando xinput.
Con algo de Fortuna, hoy conseguiré que me presten uno de estos dichosos mandos y podre probar personalmente que ocurre con estos.

El exportable que adjuntaste funciona bien con un mando Xbox360: se puede controlar la nave con la palanca. Sin embargo, ese código no te servirá para los mandos tipo "PS Control Pad" sin palanca. Si tu juego es de un solo jugador, para hacerlo compatible con ambos tipos de joystick te sugiero que primero compruebes que la función gamepad_is_connected(0) devuelve true; si es así, usa el código con las funciones gamepad que adjuntaste y en caso contrario usa las funciones joystick (no es tan engorroso como parece). Para dilucidar el asunto de por qué la nave se va hacia la izquierda habría que revisar el código que usas con las funciones joystick.

Cita de: canuto120 en Agosto 05, 2015, 09:43:22 AM
Es problema del emulador y su configuracion o del mando en si, por la sensibilidad del mismo, en su dia intente jugar con mando de ps3 al kingdom hearts de la ps2 emulador ps2 y el personaje se me iba todo el rato hacia un lado si no tocaba nada, me pasaba con todos los juegos al que intentaba jugar con el mando de ps3.

No creo que sea el caso. Probé el juego de Marth (http://www.comunidadgm.org/juegos-en-desarrollo/iliada-espacial/) con un joystick tipo PS Control Pad sin usar ningún emulador y la nave se va sola hacia la esquina de la pantalla; tampoco es problema de calibración del joystick porque lo probé en otros juegos y eso no me sucede.


Cita de: Guacusio en Agosto 05, 2015, 09:01:40 PM
El exportable que adjuntaste funciona bien con un mando Xbox360: se puede controlar la nave con la palanca. Sin embargo, ese código no te servirá para los mandos tipo "PS Control Pad" sin palanca. Si tu juego es de un solo jugador, para hacerlo compatible con ambos tipos de joystick te sugiero que primero compruebes que la función gamepad_is_connected(0) devuelve true; si es así, usa el código con las funciones gamepad que adjuntaste y en caso contrario usa las funciones joystick (no es tan engorroso como parece). Para dilucidar el asunto de por qué la nave se va hacia la izquierda habría que revisar el código que usas con las funciones joystick.

Cita de: canuto120 en Agosto 05, 2015, 09:43:22 AM
Es problema del emulador y su configuracion o del mando en si, por la sensibilidad del mismo, en su dia intente jugar con mando de ps3 al kingdom hearts de la ps2 emulador ps2 y el personaje se me iba todo el rato hacia un lado si no tocaba nada, me pasaba con todos los juegos al que intentaba jugar con el mando de ps3.

No creo que sea el caso. Probé el juego de Marth (http://www.comunidadgm.org/juegos-en-desarrollo/iliada-espacial/) con un joystick tipo PS Control Pad sin usar ningún emulador y la nave se va sola hacia la esquina de la pantalla; tampoco es problema de calibración del joystick porque lo probé en otros juegos y eso no me sucede.

En la ultima actualización he probado a hacer lo que sugieres de la función "is connected". Pruebalo y a ver si esta es la buena.
Probaste el exportable y funciono a la perfección.
Si en mi juego sigue habiendo ese contratiempo, iré subiendo en este chat versiones de este exportable a ver si así voy viendo como arreglar esto.

Al final, incluso con el sistema de checkeo sigue habiendo errores.
Subo el programa de la anterior vez pero con un añadido: ahora también es posible controlar la nave con un mando normal.
Que todo el que tenga algún tipo de mando lo pruebe y me diga si funciona perfectamente o el control es defectuoso.

Cita de: Marth en Agosto 12, 2015, 10:59:56 PM
Al final, incluso con el sistema de checkeo sigue habiendo errores.
Subo el programa de la anterior vez pero con un añadido: ahora también es posible controlar la nave con un mando normal.
Que todo el que tenga algún tipo de mando lo pruebe y me diga si funciona perfectamente o el control es defectuoso.

El programa que adjuntaste funciona bien tanto para joystick tipo Xbox como para uno genérico (en el caso del joystick Xbox la nave se mueve con la palanca en vez de la cruceta).

Probé también tu juego y ahora reconoce ambos tipos de mando. Sin embargo, el problema de que la nave se tiende a ir a la esquina superior izquierda de la pantalla, aún sin presionar nada, sigue existiendo para el joystick genérico. Cuando el joystick Xbox está conectado, la nave nunca se queda quieta aún cuando se suelte el mando, y tiende a irse a distintas direcciones.


Cita de: Guacusio en Agosto 13, 2015, 09:08:25 PM
Cita de: Marth en Agosto 12, 2015, 10:59:56 PM
Al final, incluso con el sistema de checkeo sigue habiendo errores.
Subo el programa de la anterior vez pero con un añadido: ahora también es posible controlar la nave con un mando normal.
Que todo el que tenga algún tipo de mando lo pruebe y me diga si funciona perfectamente o el control es defectuoso.

El programa que adjuntaste funciona bien tanto para joystick tipo Xbox como para uno genérico (en el caso del joystick Xbox la nave se mueve con la palanca en vez de la cruceta).

Probé también tu juego y ahora reconoce ambos tipos de mando. Sin embargo, el problema de que la nave se tiende a ir a la esquina superior izquierda de la pantalla, aún sin presionar nada, sigue existiendo para el joystick genérico. Cuando el joystick Xbox está conectado, la nave nunca se queda quieta aún cuando se suelte el mando, y tiende a irse a distintas direcciones.

Pues con esta historia flipo en colores: según tu, a excepción de mandos sin palancas analógicas, se puede jugar perfectamente, pero una vez recibí un aviso de que con un mando de Xbox la nave se va a la esquina inferior derecha (la inversa del mando sin palancas).