Oppure

Loading
11/06/12 14:37
D@vide
Salve a tutti, ho un piccolo problema con SlimDX.
Praticamente starei cercando di realizzare un applicazione che permetta di simulare la pressione di tasti da tastiera tramite un Joypad.
Il problema è che non mi rileva l'avvenuta pressione dei tasti.
Mi spiego meglio postando il sorgente.

List<DeviceInstance> directInputList = new List<DeviceInstance>();
            DirectInput dInput = new DirectInput();
            directInputList.AddRange(dInput.GetDevices(DeviceClass.GameController, DeviceEnumerationFlags.AttachedOnly));
            
            List<Joystick> joystickList = new List<Joystick>();
            foreach (DeviceInstance i in directInputList)
                joystickList.Add(new Joystick(dInput, i.InstanceGuid));
            
            if (joystickList.Count == 0)
            {
                MessageBox.Show("Nessun Gamepad rilevato. Collegare il Joypad e riprovare.", Application.ProductName);
                return 0;
            }

            // Questo form serve semplicemente per scegliere il controller da utilizzare
            ScegliJoystick scegliJoystickForm = new ScegliJoystick(joystickList);
            scegliJoystickForm.ShowDialog();

            Joystick joystickU = joystickList[scegliJoystickForm.getId];
            joystickU.Acquire();
            joystickU.Poll();

            JoystickState state = joystickU.GetCurrentState();

            bool[] listabottoni = state.GetButtons();
            foreach (bool bottone in listabottoni)
            {
                if(bottone == true)
                Console.WriteLine(bottone);
            }

            Console.ReadLine();
            joystickU.Unacquire();


Ecco, ora premendo un tasto dovrebbe stampare almeno un True nella console, cosa che invece non accade. Suggerimenti?
aaa
12/06/12 19:48
GN
Uhm, forse il problema è che leggi lo stato dei tasti nel momento in cui si avvia l'applicazione. Per far funzionare questo codice, quindi, secondo me devi prima premere il tasto, e poi, tenendolo premuto, lanciare il programma; altrimenti, secondo me devi eseguire il controllo dei tasti in un ciclo infinito, magari su un thread separato.
aaa
12/06/12 20:51
D@vide
Postato originariamente da GN:

Uhm, forse il problema è che leggi lo stato dei tasti nel momento in cui si avvia l'applicazione. Per far funzionare questo codice, quindi, secondo me devi prima premere il tasto, e poi, tenendolo premuto, lanciare il programma; altrimenti, secondo me devi eseguire il controllo dei tasti in un ciclo infinito, magari su un thread separato.


Si, in effetti ci avevo già pensato, ma non è quello il problema, non cambia nulla.
Grazie comunque per aver cercato di aiutarmi, sto impazzendo xP
aaa