让Wiimote控制Devil May Cry 4
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
//体感控制视角程序段结束