Programación General > Visual Basic 6.0 e inferiores

 Controlar El Joystick Desde Visual Basic

(1/3) > >>

DrakerDG:
:comp: Encontré información interesante sobre el uso de funciones del API para el control del Joystick utilizando Visual Basic.  Sé que para la gran mayoría esto no es nada nuevo, pero para los que no o los que de todos modos les llame la atención desarrolle un ejemplo.

Para el desarrollo del mismo utilicé varias funciones:

joyGetPosEx

joyGetDevCaps

joyGetNumDevs

Con sus respectivas estructuras de registros:

JOYINFOEX

JOYCAPS

Adicionalmente utilicé otra función del API para reproducir archivos WAV, por ejemplo:  Al pulsar un botón del joystick.

sndPlaySound

Este ejemplo puede detectar los joystick instalados en el sistema y si están conectados. También saber cuantos botones y ejes tiene. Con el apoyo de graficas y sonido muestra el estado del joystick seleccionado.  Produce diferentes sonidos cuando se presionan los botones o se mueven las palancas del joystick y/o pad.  Muestra los valores que detecta por medio del registro de consulta, en este caso el JOYINFOEX de la función joyGetPosEx.  Se puede cambiar ID del joystick en tiempo de ejecución si hay más de uno conectados al sistema.

Pueden bajar este ejemplo del siguiente link:

JoystickEX.zip

Nota:  De ser posible, para las personas que lo revisen, les agradecería me postearan sus comentarios y/o críticas al respecto.

 :gracias:

skaldebaran:
hola amigo, esta muy chido tu progra, felicidades por lo que has conseguido, pero quisiera abusar de tu confianza, nose q posibilidad haya de q me muestres el codigo, esq yo = lo estoy haciendo pero por alguna forma no me detecta los botones del joyztick, y pues ya lo intente en C++, Java y la verdad de VB no le se mucho, espero tu respuesta por favor

Nebire:

--- Cita de: "DrakerDG" ---:comp: Encontré información interesante sobre el uso de funciones del API para el control del Joystick

--- Fin de la cita ---
por ejemplo de aquí: http://foros.solocodigo.com/viewtopic.php?f=53&t=37460

Tienes también estas otras APIs de las que disponer:
Las de Treshold es para especificar una especie de salto, algo así como si mi salto lo establezco en 10 sólo me comunicará que ha sido movido cuando alcance el valor 10 ó  -10,  Es controlar los eventos de movimiento por movimiento en vez de enviarnos un evento cada cierto lapso de tiempo y comprobar nosotros si el movimiento es tan minúsculo no interpretarlo como movimiento y desencadenar todos los eventos asociados a un movimiento quizás debido al pulso del usuario... así este salto sería la unidad mínima que nos informará cuando ocurra, también es útil si queremos que dentro de un área existan sólo determinado número de movimientos. imagina una cuadrícula de 1008 x 1008 píxels, si nosotros solo concebimos aceptable que existen 8 x 8 cuadrículas (por ejemplo si nuestro tablero fuera para un ajedrez) entonces sólo nos interesaría computar como movimiento cuando se haya movido  la mitad  de una casilla es decir (1008/ (8 * 2))=63, sólo nos comunicará movimiento cuando se haya movido 63 píxeles, lo cual nos asegura que ha cambiado a otra casilla en nuestro tablero 8x8.
Private Declare Function joyGetThreshold Lib "winmm.dll" Alias "joyGetThreshold" (ByVal id As Long, lpuThreshold As Long) As Long
Private Declare Function joySetThreshold Lib "winmm.dll" Alias "joySetThreshold" (ByVal id As Long, ByVal uThreshold As Long) As Long

Las de Capture es para 'enganchar' un determinado joystick a tu programa,  vamos fijar el que vas a usar de los disponibles en tu sistema.
Private Declare Function joyReleaseCapture Lib "winmm.dll" Alias "joyReleaseCapture" (ByVal id As Long) As Long
Private Declare Function joySetCapture Lib "winmm.dll" Alias "joySetCapture" (ByVal hwnd As Long, ByVal uID As Long, ByVal uPeriod As Long, ByVal bChanged As Long) As Long

No he mirado tu código, pero lo he descargado, cuando tenga un tiempito le hecho un vistazo.
Saludos y suerte.

rodstar:

--- Cita de: "DrakerDG" ---Nota:  De ser posible, para las personas que lo revisen, les agradecería me postearan sus comentarios y/o críticas al respecto.

 :gracias:
--- Fin de la cita ---

Le he echado un vistazo y se vé de pelos muchas gracias por compartir, te puedo comentar que no estuve advertido de los sonidos, lo cual me causò bastante gracia con el x,y. Da gusto ver un programa bien hecho, se nota que lo disfrutaste al hacerlo

Thanatos-chan:
gracias por el aporte,

yo habia preguntando por algo similar.

una pregunta, el programa detecta joysticks de interfase usb?

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa