Benutzer mit den meisten Antworten
ForceFeedback GamePad

Frage
-
Guten Tag,Ich habe mir ein Programm geschrieben das ein Gamepad auslesen kann.Das funktioniert soweit auch ganz gut.Jetzt würde ich aber auch gerne die Vibrationsfunktion des Gamepads nutzen.Habe es schon mit :GamePad.SendForceFeedbackCommand(Microsoft.DirectX.DirectInput.ForceFeedbackCommand.SetActuatorsOn)versucht jedoch ohne erfolg.Bekomme dann immer die Fehlermeldung :"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt!"Hir einmal der Quellcode des Programms:
Imports System Imports System.Windows.Forms Imports Microsoft.DirectX.DirectInput Imports Microsoft.DirectX Public Class Form1 Private applicationDevice As Device = Nothing Public Shared state As New JoystickState Public Function InitDirectInput() As Boolean Dim instance As DeviceInstance For Each instance In Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly) applicationDevice = New Device(instance.InstanceGuid) Exit For Next instance applicationDevice.SetDataFormat(DeviceDataFormat.Joystick) applicationDevice.SetCooperativeLevel(Me, CooperativeLevelFlags.Exclusive Or CooperativeLevelFlags.Foreground) Dim d As DeviceObjectInstance For Each d In applicationDevice.Objects If 0 <> (d.ObjectId And CInt(DeviceObjectTypeFlags.Axis)) Then applicationDevice.Properties.SetRange(ParameterHow.ById, d.ObjectId, New InputRange(-50, +50)) End If Next d Return True End Function Public Sub GetData() If Nothing Is applicationDevice Then Return End If Try applicationDevice.Poll() Catch inputex As InputException If TypeOf inputex Is NotAcquiredException Or TypeOf inputex Is InputLostException Then Try applicationDevice.Acquire() Catch Return End Try End If End Try Try state = applicationDevice.CurrentJoystickState Catch Return End Try End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click InitDirectInput() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick GetData() 'Joystick Position erfassen Label1.Text = "Joystick: LX = " + state.X.ToString() _ & vbCrLf & " LY = " + state.Y.ToString _ & vbCrLf & " RX = " + state.Rz.ToString _ & vbCrLf & " RY = " + state.Z.ToString ' Anzeigen der Sticks Label2.Text = "Knöpfe : " _ & vbCrLf & state.GetButtons(1) _ & vbCrLf & state.GetButtons(2) _ & vbCrLf & state.GetButtons(3) _ & vbCrLf & state.GetButtons(4) _ & vbCrLf & state.GetButtons(5) _ & vbCrLf & state.GetButtons(6) _ & vbCrLf & state.GetButtons(7) _ & vbCrLf & state.GetButtons(8) _ & vbCrLf & state.GetButtons(9) _ & vbCrLf & state.GetButtons(10) _ & vbCrLf & state.GetButtons(11) _ & vbCrLf & state.GetButtons(12) _ & vbCrLf & state.GetButtons(13) _ & vbCrLf & state.GetButtons(14) _ & vbCrLf & state.GetButtons(15) _ & vbCrLf & state.GetButtons(16) ' Ausgabe der Tasten applicationDevice.SendForceFeedbackCommand(Microsoft.DirectX.DirectInput.ForceFeedbackCommand.SetActuatorsOn) End Sub End Class
Gruß Dennis
Antworten
-
Hallo Fat___Tony,
Schau Dir mal die folgende Diskussion an. Vielleicht findest Du etwas dass Dir weiter helfen kann.
http://www.vbforums.com/showthread.php?t=583176
Grüße,
Robert
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 29. Oktober 2009 08:39
- Als Antwort markiert Robert BreitenhoferModerator Samstag, 31. Oktober 2009 11:31
Alle Antworten
-
Hallo Fat___Tony,
Schau Dir mal die folgende Diskussion an. Vielleicht findest Du etwas dass Dir weiter helfen kann.
http://www.vbforums.com/showthread.php?t=583176
Grüße,
Robert
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 29. Oktober 2009 08:39
- Als Antwort markiert Robert BreitenhoferModerator Samstag, 31. Oktober 2009 11:31