码农

让Wiimote控制Devil May Cry 4

2019-01-12  本文已影响0人  FSS_Sosei

2011年写的

原来放在开源中国社区的

还是转过来吧

适用于GlovePIE 0.30

按键功能如下:Wiimote B钮为瞄准;2钮为剑;1钮为魔爪;A钮为手枪;-钮为跳跃;

+钮为蓄力;Home钮为变身;双击B钮为挑衅。

Wiimote 方向钮控制运动方向;晃动手柄控制视角。

/*Devil May Cry 4(鬼泣4)单Wiimote控制脚本

按键功能如下:Wiimote B钮为瞄准;2钮为剑;1钮为魔爪;A钮为手枪;-钮为跳跃;

+钮为蓄力;Home钮为变身;双击B钮为挑衅。

Wiimote 方向钮控制运动方向;晃动手柄控制视角。

编写者:Sosei

本脚本以GNU通用公共许可证形式发布

*/

//全脚本初始化部分开始

if var.initializer=false then

  Wiimote.Leds=15

  //Wiimote水平静止放置下的x,y,z轴固有偏差量补偿值

  var.xOffset = -1.96

  var.yOffset = -5.81

  var.zOffset = 0.11

  //视角移动速度,数值越小越慢

  var.speed = 0.8

  //如果手不稳就增大数值

  var.xCutoff = 4

  var.zCutoff = 4

  var.WheelDeadZone=0.003

  var.initializer = true

end if

//全脚本初始化部分结束

var.WiimoteB=Wiimote.B

Key.Space=var.WiimoteB  //设Wiimote B钮为瞄准

//设双击Wiimote B钮为挑衅

if DoubleClicked(Wiimote.B) then

  Release(Key.Space)

  Press(Key.M)

   Wait 15ms

  Release(Key.M)

end if

Key.I=Wiimote.Two  //设Wiimote 2钮为剑

Key.L=Wiimote.One  //设Wiimote 1钮为魔爪

Key.K=Wiimote.Minus  //设Wiimote -钮为跳跃

Key.J=Wiimote.A  //设Wiimote A钮为手枪

Key.Q=Wiimote.Plus  //设Wiimote +钮为蓄力

Key.N=Wiimote.Home  //设Wiimote Home钮为变身

//设Wiimote 方向钮为方向

Key.W=Wiimote.Right

Key.S=Wiimote.Left

Key.A=Wiimote.Up

Key.D=Wiimote.Down

//体感控制视角程序段开始

var.xRot = (Wiimote.RawAccX + var.xOffset)*2.633

var.yRot = (Wiimote.RawAccY + var.yOffset)*2.633

var.zRot = (Wiimote.RawAccZ + var.zOffset)*2.633

if var.xRot > var.xCutoff then

  var.xMoveQuantity=0.001 * var.speed * (var.xRot - var.xCutoff)

  if var.xMoveQuantity>var.WheelDeadZone then

    Press(Key.Down)

    Wait 20ms

    Release(Key.Down)

    Wait 13ms

  else if var.xMoveQuantity<-var.WheelDeadZone then

    Press(Key.Up)

    Wait 20ms

    Release(Key.Up)

    Wait 13ms

  end if

end if

if var.xRot < -var.xCutoff then

  var.xMoveQuantity=0.001 * var.speed * (var.xRot + var.xCutoff)

  if var.xMoveQuantity>var.WheelDeadZone then

    Press(Key.Down)

    Wait 20ms

    Release(Key.Down)

    Wait 13ms

  else if var.xMoveQuantity<-var.WheelDeadZone then

    Press(Key.Up)

    Wait 20ms

    Release(Key.Up)

    Wait 13ms

  end if

end if

if var.zRot > var.zCutoff then

  var.yMoveQuantity=0.001 * var.speed * (var.zRot - var.zCutoff)

  if var.yMoveQuantity>var.WheelDeadZone then

    Press(Key.Right)

    Wait 20ms

    Release(Key.Right)

    Wait 13ms

  else if var.yMoveQuantity<-var.WheelDeadZone then

    Press(Key.Left)

    Wait 20ms

    Release(Key.Left)

    Wait 13ms

  end if

end if

if var.zRot < -var.zCutoff then

  var.yMoveQuantity=0.001 * var.speed * (var.zRot + var.zCutoff)

  if var.yMoveQuantity>var.WheelDeadZone then

    Press(Key.Right)

    Wait 20ms

    Release(Key.Right)

    Wait 13ms

  else if var.yMoveQuantity<-var.WheelDeadZone then

    Press(Key.Left)

    Wait 20ms

    Release(Key.Left)

    Wait 13ms

  end if

end if

//体感控制视角程序段结束

上一篇下一篇

猜你喜欢

热点阅读