Hola, tengo una duda sobre las funciones del joystick en game maker. Los botones se reconocen con joystick_check_button con 1, 2, 3... pero como me refiero a las direcciones? Probe con poner "left", "right", "up" y "down" pero el game maker no las reconoce, y me fije en el manual y no vi que figuren.
Este es el código de ejemplo que incluye el manual
[gml]
switch (joystick_direction(1))
{
case vk_numpad1: direction = 225; break;
case vk_numpad2: direction = 270; break;
case vk_numpad3: direction = 315; break;
case vk_numpad4: direction = 180; break;
case vk_numpad6: direction = 0; break;
case vk_numpad7: direction = 135; break;
case vk_numpad8: direction = 90; break;
case vk_numpad9: direction = 45; break;
}
[/gml]
Las funciones joystick devuelven un código de tecla del pad numérico, dependiendo de la dirección del joystick (vk_numpad8 si es arriba, vk_numpad2 si es abajo, etc.). También puedes usar en DRAW
[gml]draw_text(10, 10," Direccion: " + joystick_direction(1) )[/gml]
Cuando muevas el joystick, se dibujará en pantalla el código de tecla correspondiente a esa dirección (un número). Puedes anotar los 8 números y usarlos en lugar de las constantes vk_numpad1, vk_numpad2, etc
hay tambien otra manera que es sencilla. colocas todos los codigos de movimientos en teclas
ejemplo en el event key left. y en el joitick tambien puedes usar event de joitick estan en mouse. colocas llamar a presionar esa tecla. keyboard_key_press(vk_left)
keyboard_key_release(vk_left); siempre debe ir debajo el de release, para que deje de presionar la tecla. Es como una presion virtual de la tecla.
Yo lo hago asi pues resulta mucho mas sencillo, ademas de que dejo opcion de jugar con teclado o joitick segun el jugador lo desee.
Ah lo de joystick en mouse no me figura, sera que tengo una version desactualizada?
Cita de: Kain88 en Marzo 30, 2015, 09:42:40 PM
Ah lo de joystick en mouse no me figura, sera que tengo una version desactualizada?
No, al contrario. Esos eventos estaban en versiones anteriores de GM, ahora en GMS ya no están.
Ah buenisimo, voy a probar con los metodos que me pasaron entonces, gracias!
Una ultima duda sobre el tema: Asi como en el teclado se usa keyboard_check_released, como indico con el joystick cuando un botón se deja de presionar?
No hay una función directa para hacer eso en el joystick. Tendrías que crear tu propio mecanismo para hacerlo.
Aparte de las funciones joystick, existen las funciones gamepad. Las funciones joystick se incluyen en GMS para darle compatibilidad a viejos proyectos de GM8, las funciones gamepad son nuevas/mejoradas y si incorporan función para detectar estados pressed y released en los botones, pero necesitas un control compatible (muchos controles genéricos sólo funcionan con las funciones joystick y no con las gamepad). ¿Ya probaste tu control para ver si funciona con gamepad?
Lo voy a probar ahora, en "device" que deberia poner?