DoboWiki
Top
> 自由区/.NET Tipsの器/ゲームコントローラの制御 をテンプレートにして作成
自由区/.NET Tipsの器/ゲームコントローラの制御 をテンプレートにして作成
開始行:
*ゲームコントローラの制御 [#a1ff864b]
#column(説明)
このTipsの完成に協力していただけるという方は、&edit{こち...
#column(end)
-器の作成者:
-投稿日:2009-08-05 (水) 02:04:54
**要約 [#j43489df]
ゲームを製作するのに必要な要素のひとつであるゲームコント...
**本文 [#u818acb5]
***Win32APIを使う [#m095f33c]
joyGetPosEx 関数
誰かわかりやすく見やすいように手を加えてください・・・
#prescroll(){{
Public Class Form1
''' <summary>
''' ジョイスティックを照会して、その位置とボタンの状...
''' </summary>
''' <param name="uJoyID">照会するジョイスティック(JO...
''' <param name="pji">ジョイスティックの拡張位置情報...
''' <returns>関数が成功すると、JOYERR_NOERROR が返り...
''' <remarks></remarks>
Declare Function joyGetPosEx Lib "winmm" (uJoyID As U...
''' <summary>
''' 指定されたウィンドウにメッセージを送信して、ジョ...
''' </summary>
''' <param name="hwnd">ジョイスティックメッセージを受...
''' <param name="uJoyID">キャプチャするジョイスティッ...
''' <param name="uPeriod">ポーリングの頻度をミリ秒単...
''' <param name="fChanged">位置フラグを変更します。ジ...
''' <returns>関数が成功すると、JOYERR_NOERROR が返り...
''' <remarks></remarks>
Declare Function joySetCapture Lib "winmm" (ByVal hwn...
''' <summary>
''' 指定のキャプチャされているジョイスティックを解放...
''' </summary>
''' <param name="uJoyID">解放するジョイスティック(JO...
''' <returns>関数が成功すると、JOYERR_NOERROR が返り...
''' <remarks></remarks>
Declare Function joyReleaseCapture Lib "winmm" (ByVal...
Structure JOYINFOEX
Public dwSize As Integer
Public dwFlags As JOY
Public dwXpos As Integer
Public dwYpos As Integer
Public dwZpos As Integer
Public dwRpos As Integer
Public dwUpos As Integer
Public dwVpos As Integer
Public dwButtons As Integer
Public dwButtonNumber As Integer
Public dwPOV As Integer
Public dwReserved1 As Integer
Public dwReserved2 As Integer
End Structure
Public Const JOYSTICKID1 = 0
Public Const JOYSTICKID2 = 1
Public Enum MMRESULT As Integer
''' <summary>処理の成功を表します。</summary>
JOYERR_NOERROR = 0
''' <summary>ジョイスティックドライバが存在しませ...
MMSYSERR_NODRIVER = 6
''' <summary>無効なパラメータが渡されました。</su...
MMSYSERR_INVALPARAM = 11
''' <summary>指定されたジョイスティック識別子は無...
MMSYSERR_BADDEVICEID = 2
''' <summary>指定されたジョイスティックデバイスの...
JOYERR_PARMS = 165
''' <summary>必要なサービス(WIndows タイマなど)...
JOYERR_NOCANDO = 166
''' <summary>指定されたジョイスティックはシステム...
JOYERR_UNPLUGGED = 167
End Enum
'Windows Message
Enum MM As Integer
JOY1MOVE = &H3A0
JOY2MOVE = &H3A1
JOY1ZMOVE = &H3A2
JOY2ZMOVE = &H3A3
JOY1BUTTONDOWN = &H3B5
JOY2BUTTONDOWN = &H3B6
JOY1BUTTONUP = &H3B7
JOY2BUTTONUP = &H3B8
End Enum
Enum JOY As Integer
RETURNX = &H1
RETURNY = &H2
RETURNZ = &H4
RETURNR = &H8
RETURNU = &H10 ' axis 5
RETURNV = &H20 ' axis 6
RETURNPOV = &H40
RETURNBUTTONS = &H80
RETURNRAWDATA = &H100
RETURNPOVCTS = &H200
RETURNCENTERED = &H400
RETURNALL = (RETURNX + RETURNY + RETURNZ + RETURN...
End Enum
Dim joyInfo As New JOYINFOEX With { _
.dwSize = Len(joyInfo)}
Private Sub Form1_Load(sender As System.Object, e As ...
joySetCapture(Me.Handle, JOYSTICKID1, 50, False)
End Sub
Private Sub Form1_FormClosing(sender As System.Object...
joyReleaseCapture(JOYSTICKID1)
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Win...
Select Case m.Msg
Case MM.JOY1MOVE
Dim Temp$ = Convert.ToString(m.LParam.ToI...
Label1.Text = (Space(32 - Temp.Length).Re...
Temp = Convert.ToString(m.WParam.ToInt32,...
Label2.Text = (Space(32 - Temp.Length).Re...
End Select
MyBase.WndProc(m)
End Sub
End Class
}}
**コメント [#r128546a]
#comment
//これより下は変更しないでください
#pageinfo([[:Category/.NET]],2009-08-05 (水) 02:04:54,,20...
終了行:
*ゲームコントローラの制御 [#a1ff864b]
#column(説明)
このTipsの完成に協力していただけるという方は、&edit{こち...
#column(end)
-器の作成者:
-投稿日:2009-08-05 (水) 02:04:54
**要約 [#j43489df]
ゲームを製作するのに必要な要素のひとつであるゲームコント...
**本文 [#u818acb5]
***Win32APIを使う [#m095f33c]
joyGetPosEx 関数
誰かわかりやすく見やすいように手を加えてください・・・
#prescroll(){{
Public Class Form1
''' <summary>
''' ジョイスティックを照会して、その位置とボタンの状...
''' </summary>
''' <param name="uJoyID">照会するジョイスティック(JO...
''' <param name="pji">ジョイスティックの拡張位置情報...
''' <returns>関数が成功すると、JOYERR_NOERROR が返り...
''' <remarks></remarks>
Declare Function joyGetPosEx Lib "winmm" (uJoyID As U...
''' <summary>
''' 指定されたウィンドウにメッセージを送信して、ジョ...
''' </summary>
''' <param name="hwnd">ジョイスティックメッセージを受...
''' <param name="uJoyID">キャプチャするジョイスティッ...
''' <param name="uPeriod">ポーリングの頻度をミリ秒単...
''' <param name="fChanged">位置フラグを変更します。ジ...
''' <returns>関数が成功すると、JOYERR_NOERROR が返り...
''' <remarks></remarks>
Declare Function joySetCapture Lib "winmm" (ByVal hwn...
''' <summary>
''' 指定のキャプチャされているジョイスティックを解放...
''' </summary>
''' <param name="uJoyID">解放するジョイスティック(JO...
''' <returns>関数が成功すると、JOYERR_NOERROR が返り...
''' <remarks></remarks>
Declare Function joyReleaseCapture Lib "winmm" (ByVal...
Structure JOYINFOEX
Public dwSize As Integer
Public dwFlags As JOY
Public dwXpos As Integer
Public dwYpos As Integer
Public dwZpos As Integer
Public dwRpos As Integer
Public dwUpos As Integer
Public dwVpos As Integer
Public dwButtons As Integer
Public dwButtonNumber As Integer
Public dwPOV As Integer
Public dwReserved1 As Integer
Public dwReserved2 As Integer
End Structure
Public Const JOYSTICKID1 = 0
Public Const JOYSTICKID2 = 1
Public Enum MMRESULT As Integer
''' <summary>処理の成功を表します。</summary>
JOYERR_NOERROR = 0
''' <summary>ジョイスティックドライバが存在しませ...
MMSYSERR_NODRIVER = 6
''' <summary>無効なパラメータが渡されました。</su...
MMSYSERR_INVALPARAM = 11
''' <summary>指定されたジョイスティック識別子は無...
MMSYSERR_BADDEVICEID = 2
''' <summary>指定されたジョイスティックデバイスの...
JOYERR_PARMS = 165
''' <summary>必要なサービス(WIndows タイマなど)...
JOYERR_NOCANDO = 166
''' <summary>指定されたジョイスティックはシステム...
JOYERR_UNPLUGGED = 167
End Enum
'Windows Message
Enum MM As Integer
JOY1MOVE = &H3A0
JOY2MOVE = &H3A1
JOY1ZMOVE = &H3A2
JOY2ZMOVE = &H3A3
JOY1BUTTONDOWN = &H3B5
JOY2BUTTONDOWN = &H3B6
JOY1BUTTONUP = &H3B7
JOY2BUTTONUP = &H3B8
End Enum
Enum JOY As Integer
RETURNX = &H1
RETURNY = &H2
RETURNZ = &H4
RETURNR = &H8
RETURNU = &H10 ' axis 5
RETURNV = &H20 ' axis 6
RETURNPOV = &H40
RETURNBUTTONS = &H80
RETURNRAWDATA = &H100
RETURNPOVCTS = &H200
RETURNCENTERED = &H400
RETURNALL = (RETURNX + RETURNY + RETURNZ + RETURN...
End Enum
Dim joyInfo As New JOYINFOEX With { _
.dwSize = Len(joyInfo)}
Private Sub Form1_Load(sender As System.Object, e As ...
joySetCapture(Me.Handle, JOYSTICKID1, 50, False)
End Sub
Private Sub Form1_FormClosing(sender As System.Object...
joyReleaseCapture(JOYSTICKID1)
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Win...
Select Case m.Msg
Case MM.JOY1MOVE
Dim Temp$ = Convert.ToString(m.LParam.ToI...
Label1.Text = (Space(32 - Temp.Length).Re...
Temp = Convert.ToString(m.WParam.ToInt32,...
Label2.Text = (Space(32 - Temp.Length).Re...
End Select
MyBase.WndProc(m)
End Sub
End Class
}}
**コメント [#r128546a]
#comment
//これより下は変更しないでください
#pageinfo([[:Category/.NET]],2009-08-05 (水) 02:04:54,,20...
ページ名:
▲
▼
[
トップ
] [
新規
|
子ページ作成
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]