(Wii)(GlovePIE)(Wiiリモコン と モーションプラス で PC用の空中マウス プロジェクト 02)

 もう一回若干の仕様変更
同じ様なスクリプトを何回も書いてしまって申し訳ない 笑)
こういうのを一度できちんと 思い通りに作れないのが 私の頭の悪さの証拠です 笑)

Aボタン 左ボタン
+ボタン 右ボタン
Bボタン 押している間マウスカーソルを止める
Bボタンを押しながら−ボタン 押している間マウスカーソルの動きが遅くなる
−ボタン マウスカーソルの移動速度を 通常←→遅い と 交互に変更する
1ボタン マウスホイールを下に回す
Bボタンを押しながら1ボタン マウスホイールを上に回す
2ボタンを押しながらBボタン Alt+Tab
HOMEボタン マウスカーソルを画面中央にリセットする
// 初期化処理
if (Starting) {
   var.DispWidth = 1920;  // 使っているディスプレイの解像度の幅
   var.DispHeight = 1200; // 使っているディスプレイの解像度の高さ
   var.IsSlow = False; // 値を変更しないで下さい
}

// ヨー ピッチ の 変化の取得
var.Vec_X = Wiimote.MotionPlus.GyroYaw - var.Last_GyroYaw;
var.Vec_Y = Wiimote.MotionPlus.GyroPitch - var.Last_GyroPitch;
var.Last_GyroYaw = Wiimote.MotionPlus.GyroYaw;
var.Last_GyroPitch = Wiimote.MotionPlus.GyroPitch;

// リモコンをきちんと静止した状態で使い始めても 微振動を感知して
// カーソルが動いてしまう事があるのでその現象を抑制します
// ゆっくりカーソルを動かそうと思ったら カーソルがカクついてしまう場合は
// 値を小さくしてみてください(0.001単位くらいで調整できます)
if (abs(var.Vec_X) < 0.025){
   var.Vec_X = 0;
}
if (abs(var.Vec_Y) < 0.025){
   var.Vec_Y = 0;
}

// カーソルの移動処理
if (!Wiimote.B) {
   if (Wiimote.Minus) {
      var.IsSlow = !var.IsSlow;
      Wait 500ms;
   }
   if (Wiimote.A) {
      Mouse.CursorPosX += (var.Vec_X / 500000);
      Mouse.CursorPosY -= (var.Vec_Y / 500000);
   }elseif (var.IsSlow) {
      Mouse.CursorPosX += (var.Vec_X / 1000000);
      Mouse.CursorPosY -= (var.Vec_Y / 1000000);
   }else{
      Mouse.CursorPosX += (var.Vec_X / 200000);
      Mouse.CursorPosY -= (var.Vec_Y / 200000);
   }
}else{
   if (Wiimote.Minus) {
      Mouse.CursorPosX += (var.Vec_X / 1500000);
      Mouse.CursorPosY -= (var.Vec_Y / 1500000);
   }
}

// Homeボタンで カーソルを中央に戻す
if (Wiimote.Home and !Wiimote.B) {
   Mouse.CursorPosX = var.DispWidth / 2;
   Mouse.CursorPosY = var.DispHeight / 2;
}

// 1ボタンで ホイール回転下
// Bボタン押しながら 1ボタンで ホイール回転上
if (Wiimote.One) {
   if (Wiimote.B) {
      Mouse.WheelUp = True;
   }else{
      Mouse.WheelDown = True;
   }
   Wait 200ms;
}

// Bボタンを押しながら 2ボタンで Alt+Tab
Alt = Wiimote.Two;
Tab = (Wiimote.Two and Wiimote.B);

// その他のキーアサイン
Keyboard.Up = Wiimote.Up;
Keyboard.Down = Wiimote.Down;
Keyboard.Left = Wiimote.Left;
Keyboard.Right = Wiimote.Right;
Mouse.LeftButton = Wiimote.A;
Mouse.RightButton = Wiimote.Plus;