La creazione di un progetto da zero in Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
La funzione joyGetPos (Tutorial completo)

La funzione joyGetPos potà apparire un po' fuori luogo per un'applicazione sviluppata in Visual Basic, ma molto spesso questo si può rivelare un semplice luogo comune.
Basti pensare infatti a tutte le applicazioni che fanno uso della DirectX di cui si può seguire il riferimento nell'indice analitico.
Un po' più paradossale potrebbe sembrare un programma che sfrutta il joystick per muoversi tra menu e pulsanti: in effetti è proprio così.
Lasciata alle spalle questa inutile premessa, presentiamo di seguito la dichiarazione della joyGetPos:

Declare Function joyGetPos Lib "winmm.dll" (ByVal uJoyID As Long, pji As JOYINFO) As Long

Come si potrà notare la funzione necessita di pochi parametri, uno dei quali fa riferimento ad una struttura che naturalmente deve essere inclusa nel progetto nel caso si voglia fare uso della joyGetPos. Gli unici due parametri necessari sono riassunti all'interno della seguente tabella:

uJoyID E' l'intero di riferimento al joystick del quale si vuole verificare la posizione. La numerazione dei vari joystick (se presenti) parte dal valore 0 per cui il primo della lista, visibile anche nel pannello di controllo avrà un riferimento pari a 0, il secondo 1 e così via;
pji E' la variabile che riceve tutte le informazioni utili per determinare la posizione del joystick.

Facciamo un esempio. Vogliamo verificare la posizione del primo joystick della lista delle periferiche di gioco presente nel Pannello di Controllo del sistema operativo. Dichiariamo prima di tutto la funzione joyGetPos:

Private Declare Function joyGetPos Lib "winmm.dll" (ByVal uJoyID As Long, pji As JOYINFO) As Long

Siccome il parametro uJoyID fa riferimento alla struttura JOYINFO, sarà necessario includerla nel progetto. La struttura JOYINFO in ogni caso è trattata separatamente in un secondo articolo:

Private Type JOYINFO
wXpos As Long
wYpos As Long
wZpos As Long
wButtons As Long
End Type

Adesso consideriamo l'evento Click di Form1. Vogliamo che, cliccando sulla form, vengano visualizzate le coordinate X,Y e Z del joystick. Dichiariamo la variabile Posizione (che conterrà tutte queste informazioni) come membro della struttura JOYINFO:

Private Sub Form_Click()
Dim Posizione As JOYINFO

Richiamiamo quindi la joyGetPos assegnandole rispettivamente il numero identificativo del joystick (in questo caso 0) e la variabile che conterrà tutte le informazioni:

joyGetPos 0, Posizione

Visualizziamo per concludere una finestra di messaggio con tutte le informazioni utili sul joystick:

MsgBox "X: " & Posizione.wXpos & " Y: " & Posizione.wYpos & " Z: " & Posizione.wZpos
End Sub

Ecco dunque il codice completo per questo esempio:

Private Declare Function joyGetPos Lib "winmm.dll" (ByVal uJoyID As Long, pji As JOYINFO) As Long Private Type JOYINFO
wXpos As Long
wYpos As Long
wZpos As Long
wButtons As Long
End Type
Private Sub Form_Click()
Dim Posizione As JOYINFO
joyGetPos 0, Posizione
MsgBox "X: " & Posizione.wXpos & " Y: " & Posizione.wYpos & " Z: " & Posizione.wZpos
End Sub



Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it