入力系
入力系はえらいシンプルだね。
XBOX360コントローラ
GamePad.GetState(prayer index) で指定プレイヤーのコントローラ状態引っ張ってこれる。とれてくるのが GamePadState で、Buttons とか Triggers とか。
Buttons.A とか呼ぶと、ButtonState.Pressed とか取れるので判定しれ。
Triggers の場合は、押しこみ具合が取得できる。値は入力なしで 0 最大押し込みで 1.0
スティック入力は ThumbStick でこれらは xy 座標系で取得できる。左下が -1 で右上が 1 と。方向パッドは DPad プロパティで拾う。内容はUp,Down,Left,Right、、、、まんまだな。
Keyboard
Keyboard.GetState() で拾ってくる。これも仕様はそんな変わんね。
IsKeyUp, IsKeyDown でも拾えるけど、まとめて拾うときは GetPressedKeys で押されてる Key 配列が返ってくる。
Mouse
なんかメモが不毛な気がしてきた。
Mouse.GetState() で取得。クライアント座標の x,y とLeftButton/RightButton が拾ってこれる。
@ScrollWheelValue プロパティで、回転方向に対する累積値が、、、、て、累積値!?差分とって解析か、、、、ダルス。
TouchPanel
Windows7/8 で作るなら対応したいよなーと思って調べた。未実験。
Microsoft.Xna.Framework.Input.Touch ライブラリを参照に加えてusingするといろいろ使える。
// タッチパネル利用判定 bool data = TouchPanel.GetCapabilities().IsConnected; // タッチ状態の取得 TouchCollection touch = TouchPanel.GetState(); foreach (TouchLocation tl in touch ) { if ((tl.State == TouchLocationState.Pressed) || (tl.State == TouchLocationState.Moved)) { // add sparkles based on the touch location sparkles.Add(new Sparkle(tl.Position.X, tl.Position.Y, ttms)); } }