|
发表于 2010-1-3 21:54:40
|
显示全部楼层
388, 现在我做了一个两点的架子,如图1(附件1),好像不能上图!等会儿再试试。
我利用PPJoy中的虚拟轴PPJoy.Analog0和PPJoy.Analog1模拟视觉的水平轴和垂直轴,并在LOFC中设置了这两个虚拟轴。
下面是我在GlovePIE中写的代码:
if Wiimote.dot2vis=true and Wiimote.dot1vis= true then
var.p1x=Wiimote.dot1x/1024
var.p1y=wiimote.dot1y/1024
var.p2x=wiimote.dot2x/1024
var.p2y=wiimote.dot2y/1024
//判断PUP和PDOWN
if var.p1y<var.p2y then
var.pupy=var.p2y
var.pupx=var.p2x
var.pdowny=var.p1y
var.pdownx=var.p1x
else
var.pupy=var.p1y
var.pupx=var.p1x
var.pdowny=var.p2y
var.pdownx=var.p2x
endif
if Key.NUMPAD5 then
var.pupyOriginal=var.pupy
var.pupxOriginal=var.pupx
var.pdownyOriginal=var.pdowny
var.pdownxOriginal=var.pdownx
endif
var.pitch=(aTan((var.pupy-var.pdowny)/(var.pupyOriginal-var.pdownyOriginal))-45)
var.yaw=-aTan((var.pdownx-var.pupx)/(var.pupyOriginal-var.pdownyOriginal))
var.analog0 = var.yaw/90
var.analog1 = var.pitch/90
wait 10ms
var.p1x=Wiimote.dot1x/1024
var.p1y=wiimote.dot1y/1024
var.p2x=wiimote.dot2x/1024
var.p2y=wiimote.dot2y/1024
if var.p1y<var.p2y then
var.pupy=var.p2y
var.pupx=var.p2x
var.pdowny=var.p1y
var.pdownx=var.p1x
else
var.pupy=var.p1y
var.pupx=var.p1x
var.pdowny=var.p2y
var.pdownx=var.p2x
endif
var.pitch1=(aTan((var.pupy-var.pdowny)/(var.pupyOriginal-var.pdownyOriginal))-45)
var.yaw1=-aTan((var.pdownx-var.pupx)/(var.pupyOriginal-var.pdownyOriginal))
var.analog2 = var.yaw1/90
var.analog3 = var.pitch1/90
if abs(var.analog2-var.analog0)<0.1 then
PPJoy.Analog0 = smooth(var.analog0 ,20)
else
PPJoy.Analog0 = smooth(var.analog2 ,20)
endif
if abs(var.analog3-var.analog1)<0.1 then
PPJoy.Analog1 = smooth(2*var.analog1 ,20)
else
PPJoy.Analog1 = smooth(2*var.analog3 ,20)
endif
endif
debug = ' pupx= '+var.pupx+' pupy= '+var.pupy + ' pdownx= '+var.pdownx+' pdowny= '+var.pdowny+' InputX'+var.InputX+' InputY'+var.InputY+' yaw= '+var.yaw+' pitch= '+var.pitch +' analog0'+PPJoy1.analog0+' analog1'+PPJoy1.analog1
虽然在游戏中可以模拟出Yaw和Pitch,但是PPJoy1.analog0 和 PPJoy1.analog1的值噪声很大(这两个轴不停地在稳定值上下跳动0.01),导致视角不停地跳动(我实在受不了啦!)。
请问是否有方法降低这两个虚拟轴输出的噪声? |
|