Joystick em Visual Studio 2010 - Versão de Impressão +- Forum Pplware (http://forum.pplware.com) +-- Fórum: Mais Tech (/forumdisplay.php?fid=11) +--- Fórum: Programação e Web (/forumdisplay.php?fid=16) +--- Tópico: Joystick em Visual Studio 2010 (/showthread.php?tid=7959) |
Joystick em Visual Studio 2010 - Voncrux - 07-12-2010 22:55 Boa noite, pessoal! Como tenho reparado, existe por aqui muita gente entendida em visual basic, e penso portanto que me poderão ajudar. Gostava de saber se alguém conhece (ou possui...) alguma estrutura para vb.net que registe uma posição dada por um joystick. O objectivo será usar essa posição para comandar 2 eixos de uma máquina, por comunicação série. Toda a estrutura da comunicação já está feita, as variáveis de posição criadas (pois já são usadas para controlo por input de valores), só faltando este "pequeno" pormenor... Ficaria mesmo agradecido se me pudessem ajudar. Obrigado! RE: Joystick em Visual Studio 2010 - Voncrux - 14-12-2010 23:20 malta, agora é que preciso mesmo da vossa ajuda! vou postar aqui o que já tenho feito, mas isto está a dar um erro que eu não sei resolver. eu retirei isto de um outro forum, de alguém que queria fazer o mesmo que eu... o erro que dá é um "FileLoadException". será que alguém podia dar uma vista de olhos nisto a sério? ficaria mesmo muito agradecido (mesmo mesmo mesmo...) 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(-1000, +1000)) 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 = "Eixos: LX = " + state.X.ToString() _ & vbCrLf & " LY = " + state.Y.ToString _ & vbCrLf & " RX = " + state.Rz.ToString _ & vbCrLf & " RY = " + state.Z.ToString ' Anzeigen der Sticks Label2.Text = "Botões : " _ & vbCrLf & state.GetButtons(0) _ & 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) ' Ausgabe der Tasten 'applicationDevice.SendForceFeedbackCommand(ForceFeedbackCommand.SetActuatorsOn) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If Timer1.Enabled = False Then Timer1.Enabled = True Else Timer1.Enabled = False End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Interval = 100 End Sub End Class RE: Joystick em Visual Studio 2010 - Voncrux - 15-12-2010 01:39 bem, visto que ninguém respondeu, venho então comunicar que já está resolvido. o que pus acima não pode ser compilado em .Net Framework 4, tem de ser em 2 ou menos. mas pronto, obrigado pelas views. boa noite pessoal! vou brincar com o meu joystick! |