Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Tips & tricks

#119 - Hur man kontrollerar en Joystick i ett program

Postat 2000-12-21 23:20:13 av Pelle Johansson i Kategori Programmering, C#, Kommandon med 0 Kommentarer

Private Sub Form_Load()
' Starta med timern avstängd
Timer1.Enabled = False

' Hämta egenskaper för joystick1
rc = joyGetDevCaps(JOYSTICKID1, caps, Len(caps))
If (rc <> 0) Then
MsgBox "Finner ingen joystick"
End
End If

' Addera kontroller för axeln
numAxes = 1
axisY = axis(0).Top
Set xaxis = axis(0)
AddAxisControl "Y", yaxis
If (caps.wCaps And JOYCAPS_HASZ) Then AddAxisControl "Z", zaxel
If (caps.wCaps And JOYCAPS_HASR) Then AddAxisControl "R", raxex
If (caps.wCaps And JOYCAPS_HASU) Then AddAxisControl "U", uaxel
If (caps.wCaps And JOYCAPS_HASV) Then AddAxisControl "V", vaxel
If (caps.wCaps And JOYCAPS_HASPOV) Then AddAxisControl "POV", pov

' Skapar checkboxas för knapparna
LoadButtonCheckBoxes (caps.wNumButtons)

' Positionerar status boxen
status.Left = 0
status.Top = Form1.Height - (status.Height * 2.5)

' Starta timern
Timer1.Enabled = True
End Sub


Private Sub AddAxisControl(name As String, ctrl As label)
'Addera label för att visa axlarna

axisY = axisY + (axis(0).Height * ySpacingFactor)

If (Form1.Height < (axisY + axis(0).Height * 3)) Then
Form1.Height = Form1.Height + (axis(0).Height * ySpacingFactor)
End If

Load axis(numAxes)
Load label(numAxes)

Set ctrl = axis(numAxes)
ctrl.Width = axis(0).Width
ctrl.Height = axis(0).Height
ctrl.Left = axis(0).Left
ctrl.Top = axisY
ctrl.Visible = True
label(numAxes).Width = label(0).Width
label(numAxes).Height = label(0).Height
label(numAxes).Left = label(0).Left
label(numAxes).Top = axisY
label(numAxes).Visible = True
label(numAxes).Caption = name
numAxes = numAxes + 1
End Sub


Private Sub LoadButtonCheckBoxes(numButtons As Long)
' Addera en checkbox för varje befintlig knapp på joysticken
If (numButtons = 0) Then
button(0).Visible = False
Form1.Width = button(0).Left
Else
If (numButtons > 1) Then

Dim curX As Long
Dim curY As Long
Dim i As Long

curX = button(0).Left
curY = button(0).Top

For i = 1 To (numButtons - 1)
' flytta ner för nästa kontroll
curY = curY + (button(0).Height * ySpacingFactor)

' starta en ny column om det behövs
If (Form1.Height < (curY + 3 * button(0).Height)) Then
curY = button(0).Top
curX = curX + button(0).Width
End If

' öka formen om det behövs
If (Form1.Width < (curX + button(0).Width)) Then
Form1.Width = curX + button(0).Width
End If

' sätt checkbox och dess egenskaper
Load button(i)
button(i).Top = curY
button(i).Left = curX
button(i).Width = button(0).Width
button(i).Height = button(0).Height
button(i).Visible = True
button(i).Caption = "button " & i + 1
Next
End If
End If
End Sub

Private Sub Timer1_Timer()
' Läs av joystick med intervall

' Initialisera structuren
ji.dwSize = Len(ji)
ji.dwFlags = JOY_RETURNALL

' Hämta aktuell joystick data
rc = joyGetPosEx(JOYSTICKID1, ji)

' Visa status
If (rc = 0) Then
status.Caption = "status: joystick ansluten"
Else
If (rc = JOYERR_UNPLUGGED) Then
status.Caption = "status: joystick saknas"
Else
status.Caption = "status: joyGetPosEx error, rc = " & rc
End If
End If

' Visa datainformationen i formen
xaxis.Caption = ji.dwXpos
yaxis.Caption = ji.dwYpos
If (caps.wCaps And JOYCAPS_HASZ) Then zaxis.Caption = ji.dwZpos
If (caps.wCaps And JOYCAPS_HASR) Then raxis.Caption = ji.dwRpos
If (caps.wCaps And JOYCAPS_HASU) Then uaxis.Caption = ji.dwUpos
If (caps.wCaps And JOYCAPS_HASV) Then vaxis.Caption = ji.dwVpos
If (caps.wCaps And JOYCAPS_HASPOV) Then pov.Caption = ji.dwPOV
mask = 1
For i = 0 To (caps.wNumButtons - 1)
If (ji.dwButtons And mask) Then button(i).Value = 1 Else button(i).Value = 0
mask = mask * 2
Next
End Sub

Sample:
Size:

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
904
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies