Quisiera preguntar si Game Maker Studio permite con algún evento utilizar un mando estilo el de las videoconsolas.
He buscado en los eventos tipo "pulsar teclado", pero no he conseguido encontrar nada. :-X

Debes buscar en la sección relacionada con los JoyStick del manual: http://docs.yoyogames.com/

Tienes todas estas funciones:

joystick_exists
joystick_name
joystick_axes
joystick_buttons
joystick_has_pov
joystick_direction
joystick_check_button
joystick_xpos
joystick_ypos
joystick_zpos
joystick_rpos
joystick_upos
joystick_vpos
joystick_pov

Saludos.
Vota nuestro proyecto en Steam Greenlight:

Estudios Naicura Ltda

#2 Mayo 16, 2014, 10:40:56 PM Ultima modificación: Mayo 17, 2014, 12:29:46 AM por Marth
El enlace que me has dado esta en Ingles, por lo que no me sirve de nada. ???
He mirado esas funciones que has mostrado, pero puedo observar que eso es escasa información.
Pero lo importante es que, entonces, ¿no existen eventos tipo "pulsar un botón de un mando de videojuegos"?¿Solo esta como condicionales en las acciones?

Si preguntas por eventos, no existen. Debes detectarlos por código. Busca el manual en español, ahí sale el uso de cada código.

La otra opción, es usando los eventos personalizados. Pero en este caso también debes saber detectarlos por código para desencadenar el evento personalizado.
Vota nuestro proyecto en Steam Greenlight:

Estudios Naicura Ltda

para jugar con mando puedes usar xpadder que es muy sencillo de configurar, y te ahorras hacerlo en gm

Entiendo.
El xpadder aunque parezca bien, no sería más que una chapuza, por lo que mejor es ya incluir opción de jugar con mando.

Cita de: abramelin en Mayo 17, 2014, 04:47:55 PM
para jugar con mando puedes usar xpadder que es muy sencillo de configurar, y te ahorras hacerlo en gm
La diferencia es que cualquier jugador necesitara xpadder -.- (O no entendi tu respuesta xDD)

Cita de: Marth en Mayo 21, 2014, 12:29:55 PM
Entiendo.
El xpadder aunque parezca bien, no sería más que una chapuza, por lo que mejor es ya incluir opción de jugar con mando.
Cita de: Marth en Mayo 16, 2014, 10:40:56 PM
El enlace que me has dado esta en Ingles, por lo que no me sirve de nada. ???
He mirado esas funciones que has mostrado, pero puedo observar que eso es escasa información.
Pero lo importante es que, entonces, ¿no existen eventos tipo "pulsar un botón de un mando de videojuegos"?¿Solo esta como condicionales en las acciones?
Bueno.... no quiero venir a "trollear" pero tendras que aprender al menos lo basico de el ingles (No requiere de mucho tiempo en si...), EJ: yo utilize una cosa para mandos de Xbox "Xin_v1.1" la guia venia en ingles asi que tuve que arreglarmelas para entenderlo....

Podria echarte una ligera mano (Pero no serviria de mucho ya que no tengo ese "mando")

Este se utilizaria para chekear si existe un mando (En el ejemplo sale solo 1 y 2..... el de xbox agarraba 4....)
if joystick_exists(1)
   {
   global.connectado_joystick1= 1;
   }


Aqui un textico: The id can be either 1 or 2 as GameMaker: Studio only accepts input from a maximum of two joysticks/gamepads.
Osea..... solo 2 joysticks xDDD

Ok.... no entendi ese control xDD
Solo dire algo en base al de xbox, se checkea si un boton es presionado con valores true y false (1 y 0), los botones creo que tienes que asignarlos tu (Desgraciadamente no se que botones son.... hay de el 1 a 32 o.O)

Suerte..... Lamento mi pesima ayuda..... Si necesitas ayuda con el de Xbox 360 me avisas...... (A menos que me compre un joystick de esos.... una fotico hubiera servido quizas... xDD)

Vale, ya he podido sacar provecho en mis juegos de los mandos de videoconsola, pero veo ahora nuevos inconvenientes:
Cuando quiero ordenar que se pulse un botón del mando joystick_check_button(mando,botón),  en la sección botón tengo que poner un número (del 1 al 32) y no se hasta que pruebo el juego que botón es cada numero, ¿alguien tiene un documento en donde se indique a que botón se corresponde cada número? Ademas, ¿existe alguna función como esta pero que detecte si el botón este pulsado detecte que el botón se haya presionado ese instante (estilo key_press)?

Hola Marth

No todos los mandos son iguales, así que la posición y numeración de los botones puede variar entre modelos y marcas. Para saber qué números están disponibles puedes ver los detalles del controlador del mando, o hacer un pequeño programa en GM como éste:
[gml]
//Numero total de botones (del joystick 1)
botones = joystick_buttons(1);

//Ver el botón presionado
for( i=1; i<= botones; i+=1 )
{
    if( joystick_check_button(1,i) ) draw_text(0,0,string(i));
}
[/gml]
El código anterior debe ir en el evento Draw.

Hace tiempo hice un script para detectar presión y liberación de los botones:
[gml]
// Asignación de botones
left   = ( keyboard_check(vk_left)  || (joystick_xpos(1) <= -0.5)  );
right  = ( keyboard_check(vk_right) || (joystick_xpos(1) >= 0.5)   );
up     = ( keyboard_check(vk_up)    || (joystick_ypos(1) <= -0.5)  );
down   = ( keyboard_check(vk_down)  || (joystick_ypos(1) >= 0.5)   );
jump   = ( keyboard_check(ord('X')) || joystick_check_button(1,3)  );
attack = ( keyboard_check(ord('Z')) || joystick_check_button(1,4)  );
pause  = ( keyboard_check(ord('S')) || joystick_check_button(1,12) );

// Izquierda o derecha, pero no ambas
if(left && right) {left = 0; right = 0;}

// Presión de los botones
left_press   = (left && !left_prev);
right_press  = (right && !right_prev);
up_press     = (up && !up_prev);
down_press   = (down && !down_prev);
jump_press   = (jump && !jump_prev);
attack_press = (attack && !attack_prev);
pause_press  = (pause && !pause_prev);

// Liberación de los botones
left_release   = (!left && left_prev);
right_release  = (!right && right_prev);
up_release     = (!up && up_prev);
down_release   = (!down && down_prev);
jump_release   = (!jump && jump_prev);
attack_release = (!attack && attack_prev);
pause_release  = (!pause && pause_prev);

// Estado previo de los botones
left_prev   = left;
right_prev  = right;
up_prev     = up;
down_prev   = down;
jump_prev   = jump;
attack_prev = attack;
pause_prev  = pause;
[/gml]
El script debe ejecutarse en cada step, y las variables "prev" deben inicializarse a cero en el evento Create.

#9 Junio 13, 2014, 07:10:36 PM Ultima modificación: Junio 13, 2014, 07:20:17 PM por penumbra
Según el manual de GM:S, las funciones "Joystick" son para dar soporte a versiones antiguas (si vienes de GM 8, 7, etc)  "As such, they may not work correctly on modern PC's." (por lo tanto, podrían no funcionar en PCs modernas) Yo pienso que deberían funcionar en la mayoría de los casos, pero también hay funciones nuevas, que creo van mejor con controles mas modernos como los de la xbox o el ps3

http://docs.yoyogames.com/source/dadiospice/002_reference/mouse,%20keyboard%20and%20other%20controls/gamepad%20input/index.html

Cita de: Marth en Junio 13, 2014, 03:44:48 PM
Vale, ya he podido sacar provecho en mis juegos de los mandos de videoconsola, pero veo ahora nuevos inconvenientes:
Cuando quiero ordenar que se pulse un botón del mando joystick_check_button(mando,botón),  en la sección botón tengo que poner un número (del 1 al 32) y no se hasta que pruebo el juego que botón es cada numero, ¿alguien tiene un documento en donde se indique a que botón se corresponde cada número?

Generalmente los botones estc0n en orden. Es decir, si tu mando tiene 8 botones, son los 8 primeros. Pero intenta esto:

Ve a panel de control (yo tengo windows 7), elige Dispositivos e impresoras. Ahí debería aparecer tu mando, haz click derecho sobre él y elige Configuración del dispositivo de juego. Aparecerá una ventana, en ella haz click en el botón Propiedades. Ahí aparece esto:





No sé si le podrá interesar a alguien o no.
Mi hobby son las recreativas y soy admin en un foro del tema. El caso es que para poder manejar frontends en las recreativas, juegos, cerrarlos etc con las palancas de una recreativa no siempre se puede hacer todo de la manera que nos gustaría.

El caso es que debido a que no había en el mercado un programa que cubriera ciertas necesidades que quería me hice un programita de remapeo de teclas pero con muchas otras cosas más. Al que le interese se llama AllInOneFYC (AllInOne for your cabinet) y podéis ver el tutorial aquí.

El programa es totalmente gratis y lo he desarrollado yo por lo que tenéis soporte asegurado a quien le interese, jeje!

Saludos

Cita de: penumbra en Junio 13, 2014, 07:10:36 PM
Según el manual de GM:S, las funciones "Joystick" son para dar soporte a versiones antiguas (si vienes de GM 8, 7, etc)  "As such, they may not work correctly on modern PC's." (por lo tanto, podrían no funcionar en PCs modernas) Yo pienso que deberían funcionar en la mayoría de los casos, pero también hay funciones nuevas, que creo van mejor con controles mas modernos como los de la xbox o el ps3

http://docs.yoyogames.com/source/dadiospice/002_reference/mouse,%20keyboard%20and%20other%20controls/gamepad%20input/index.html

Cita de: Marth en Junio 13, 2014, 03:44:48 PM
Vale, ya he podido sacar provecho en mis juegos de los mandos de videoconsola, pero veo ahora nuevos inconvenientes:
Cuando quiero ordenar que se pulse un botón del mando joystick_check_button(mando,botón),  en la sección botón tengo que poner un número (del 1 al 32) y no se hasta que pruebo el juego que botón es cada numero, ¿alguien tiene un documento en donde se indique a que botón se corresponde cada número?

Generalmente los botones estc0n en orden. Es decir, si tu mando tiene 8 botones, son los 8 primeros. Pero intenta esto:

Ve a panel de control (yo tengo windows 7), elige Dispositivos e impresoras. Ahí debería aparecer tu mando, haz click derecho sobre él y elige Configuración del dispositivo de juego. Aparecerá una ventana, en ella haz click en el botón Propiedades. Ahí aparece esto:



Gracias, ahora ya puedo conocer que número se relaciona con cada botón sin hacer experimentos.
También otra cosa que veo es que máximo son 2 mandos, por lo que así nunca se podrá hacer un mario Party con Game Maker, aunque supongo que a eso la única solución es que Yoyo Games se decida a arreglarlo.