変数を使う関数。
--未来予測(FCAsaxyz=現在のベクトル FCAsbxyz=過去のベクトル)
_180pi=57.2957795130823209 * 8.6 --事前計算*予測修正
VECold={0,0,0} --過去ベクトル
function _FORECAST(FCAsax,FCAsay,FCAsaz, FCAsbx,FCAsby,FCAsbz)
rot=_NAI(FCAsax,FCAsay,FCAsaz,FCAsbx,FCAsby,FCAsbz)
if rot>=1 then
FCAscx,FCAscy,FCAscz=FCAsax,FCAsay,FCAsaz
else
rot=-math.rad(-math.acos(rot)*_180pi)
WGAIx,WGAIy,WGAIz=_WGAI(-FCAsax,-FCAsay,-FCAsaz,FCAsbx,FCAsby,FCAsbz)
loop_cos,loop_sin=math.cos(rot),math.sin(rot)
FCAscx,FCAscy,FCAscz=_SEI(FCAsbx*loop_cos+WGAIx*loop_sin,
FCAsby*loop_cos+WGAIy*loop_sin,
FCAsbz*loop_cos+WGAIz*loop_sin)
end
return FCAscx,FCAscy,FCAscz end
--マウスカーソルの移動量取得(RCsound+エイミングモード用)
old_x,old_y=_MX(),_MY() --マウスカーソル過去の座標
function _MTRA()
--移動値取得
track_x,track_y=_MX()-old_x,_MY()-old_y
old_x,old_y=_MX(),_MY()
--ループ判定
if math.abs(track_x)>_WIDTH() *0.65 then track_x=oldtrack_x end
if math.abs(track_y)>_HEIGHT()*0.65 then track_y=oldtrack_y end
oldtrack_x,oldtrack_y=track_x,track_y --過去の移動値更新
--返り値
return -track_x,track_y
end
--速度取得(chip_No=取得するチップの番号)
SPEED = 0
pX,pY,pZ = {0,0},{0,0},{0,0}
pX[0],pY[0],pZ[0] = 0,0,0
function _SPEED(chip_No)
pX,pY,pZ={pX[2],_X(chip_No)},{pY[2],_Y(chip_No)},{pZ[2],_Z(chip_No)} --配列更新{過去,現在}
pX[0],pY[0],pZ[0]=pX[1]-pX[2],pY[1]-pY[2],pZ[1]-pZ[2]
--返り値
return math.sqrt(pX[0]*pX[0]+pY[0]*pY[0]+pZ[0]*pZ[0])*100
end
最終更新:2013年04月05日 12:13