【VB开源代码栏目提醒】:以下是网学会员为您推荐的VB开源代码-摇杆控制角色.frm,希望本篇文章对您学习有所帮助。
VERSION 5.00
Begin VB.Form Form1
AutoRedraw = -1 'True
BackColor = &H00FFFFFF&
Caption = "摇杆控制角色"
ClientHeight = 4965
ClientLeft = 60
ClientTop = 345
ClientWidth = 7395
LinkTopic = "Form1"
ScaleHeight = 4965
ScaleWidth = 7395
StartUpPosition = 3 '窗口缺省
Begin VB.Image Image1
Height = 1560
Left = 2880
Top = 1560
Width = 2250
End
End
Attribute
VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim objDX As New DirectX7
Dim objDI As DirectInput
Dim DIDev As DirectInputDevice
Dim DIEnumDev As DirectInputEnumDevices
Dim JState As DIJOYSTATE
Dim Joy_GUID As String
Dim JoystickEvent As Long
Implements DirectXEvent
Private Sub Form_Load()
Me.Show
Set objDI = objDX.DirectInputCreate()
Set DIEnumDev = objDI.GetDIEnumDevices(DIDEVTYPE_JOYSTICK, DIEDFL_ATTACHEDONLY)
If DIEnumDev.GetCount = 0 Then
MsgBox "侦测不到摇杆"
End
End If
Joy_GUID = DIEnumDev.GetItem(1).GetGuidInstance
Set DIDev = objDI.CreateDevice(Joy_GUID)
DIDev.SetCommonDataFormat DIFORMAT_JOYSTICK
DIDev.SetCooperativeLevel Me.hWnd, DISCL_BACKGROUND Or DISCL_NONEXCLUSIVE
Dim DIPRange As DIPROPRANGE
With DIPRange
.lHow = DIPH_DEVICE
.lSize = Len(DIPRange)
.lMin = -50
.lMax = 50
End With
DIDev.SetProperty "DIPROP_RANGE", DIPRange
Dim DIPDead As DIPROPLONG
With DIPDead
.lHow = DIPH_DEVICE
.lSize = Len(DIPDead)
.lData = 10
End With
DIDev.SetProperty "DIPROP_DEADZONE", DIPDead
Dim DIPSat As DIPROPLONG
With DIPSat
.lHow = DIPH_DEVICE
.lSize = Len(DIPSat)
.lData = 90
End With
DIDev.SetProperty "DIPROP_DEADZONE", DIPSat
JoystickEvent = objDX.CreateEvent(Form1)
Call DIDev.SetEventNotification(JoystickEvent)
DIDev.Acquire
While True
DIDev.Poll
DoEvents
Wend
End Sub
Private Sub DirectXEvent_DXCallback(ByVal eventtid As Long)
DIDev.GetDeviceStateJoystick JState
Image1.Top = Image1.Top + JState.y
Image1.Left = Image1.Left + JState.x
If JState.buttons(0) <> 0 Then
Image1.Picture = LoadPicture("picture2.BMP")
ElseIf JState.buttons(1) <> 0 Then
Image1.Picture = LoadPicture("picture3.BMP")
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
DIDev.Unacquire
End
End Sub