Principale utente con più risposte
Intercettare tasto premuto Joystic non microsoft

Domanda
-
Risposte
-
Ok, mi sono un po' documentato (velocemente vista l'ora).
Le Managed DirectX sono deprecate a favore di XNA, il quale però sembra non supportare device esterni.
In ogni caso io ho intallato DirectX SDK 2011, e gli assembly ce li ho in C;\Windows\assembly\GAC\... (puoi provare ad aggiungere una reference a questi).Se le Managed DirectX sono deprecate e non vuoi usarle/non riesci e XNA non va bene, l'unica alternativa trovata in 10 minuti è SlimDX (http://slimdx.org/) che, a quando dicono, sembra svolgere le stesse funzioni di Managed DirectX ma aggiornate alle DX11.
In particolare, per il joystick, ho trovato questo progetto con codice sorgente in C# che sembra molto simile a quello che ti avevo scrito precedentemente:
http://code.google.com/p/slimdx/source/browse/trunk/samples/DirectInput/Joystick/MainForm.cs?r=1370- Proposto come risposta Irina Turcu venerdì 12 agosto 2011 12:03
- Contrassegnato come risposta Irina Turcu martedì 16 agosto 2011 10:14
Tutte le risposte
-
Ciao.
Tipicamente la gestione dei joystick viene effettuata nei giochi e infatti puoi gestirla tramite Directx (devi scaricare il directx sdk).
http://msdn.microsoft.com/en-us/library/bb153252(v=vs.85).aspxAltrimenti prova a dare una occhiata a questo progetto:
http://sourceforge.net/projects/xnadirectinput/Comunque sulla rete c'è molto codice a riguardo
(come questo: http://stackoverflow.com/questions/3929764/taking-input-from-a-joystick-with-c-net) -
-
Ciao Orlando Liccardo,
Ma le directx funzianano anche su controller non microsoft?
le ultime versioni di Directx sono compatibili con la maggior parte degli controller , per cui non dovresti aver problemi .Ciao
Carmelo La Monica http://community.visual-basic.it/carmelolamonica/
-
Io le avevo usate tempo fa e mi pare di non aver avuto problemi con controller non MS.
Non vorrei fare confusione, ma era un controller senza driver appositi, aggiunto manualmente tramite pannello di controllo e selezionando il layout.
Ai tempi avevo utilizzato gli ottimi tutorial presenti in questo sito:
http://www.vincedx.altervista.org/index.php
(vai in Directx 9 -> Direct Input) -
-
Ok, notjustcode è la versione aggiornata di quello vecchio da me indicato, magari è cambiato qualcosa.
Per quanto riguarda la differenza tra C# e VB direi che è un problema di codice.
Prova a vedere le differenze, che tra VB e C# non dovrebbero esserci... non dovrebbe essere difficile.
(gli esempi sembrano uguale a quelli vecchi... prova anche a debuggare) -
-
Ciao Orlando Liccardo,
Si ma io non lo capisco proprio il vb.net.
una cosa che puoi fare con attenzione e tradurlo da c# a vb.net , ripeto con la dovuta attenzione, un buon traduttore lo trovi qui.http://www.developerfusion.com/tools/convert/vb-to-csharp/
Ciao
Carmelo La Monica http://community.visual-basic.it/carmelolamonica/
-
-
Prova così:
ps: l'ho convertito a mano da VB, potrebbero esserci errori (tipo i cast)...
public static Device GetFirstJoystick(System.Windows.Forms.Control fhWnd) { Device joy1; foreach(DeviceInstance periferica in DirectInput.Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly)) { joy1 = new DirectInput.Device(periferica.InstanceGuid); joy1.SetDataFormat(DeviceDataFormat.Joystick); joy1.SetCooperativeLevel(fhWnd, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive); foreach(DeviceObjectInstance d in joy1.Objects) { if (d.ObjectId & (int)DeviceObjectTypeFlags.Axis != 0) joy1.Properties.SetRange(ParameterHow.ById, d.ObjectId, new InputRange(-5000, 5000)) } joy1.Acquire(); break; } return joy1; }
-
-
-
-
Ok, mi sono un po' documentato (velocemente vista l'ora).
Le Managed DirectX sono deprecate a favore di XNA, il quale però sembra non supportare device esterni.
In ogni caso io ho intallato DirectX SDK 2011, e gli assembly ce li ho in C;\Windows\assembly\GAC\... (puoi provare ad aggiungere una reference a questi).Se le Managed DirectX sono deprecate e non vuoi usarle/non riesci e XNA non va bene, l'unica alternativa trovata in 10 minuti è SlimDX (http://slimdx.org/) che, a quando dicono, sembra svolgere le stesse funzioni di Managed DirectX ma aggiornate alle DX11.
In particolare, per il joystick, ho trovato questo progetto con codice sorgente in C# che sembra molto simile a quello che ti avevo scrito precedentemente:
http://code.google.com/p/slimdx/source/browse/trunk/samples/DirectInput/Joystick/MainForm.cs?r=1370- Proposto come risposta Irina Turcu venerdì 12 agosto 2011 12:03
- Contrassegnato come risposta Irina Turcu martedì 16 agosto 2011 10:14