| 
					
				 | 
			
			
				@@ -0,0 +1,314 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 跳判断相关脚本代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Event() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.events = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Event.prototype.addEventListener = function(type, listener) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.events[type] = this.events[type] || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.events[type].push(listener); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Event.prototype.trigger = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		args[_key] = arguments[_key]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var type = args[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var params = args.slice(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (!!this.events[type]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// console.log("type:",type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this.events[type].forEach(function(listener) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				listener.apply(null, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} catch (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				console.error(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var jumpOpts = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//是否上升的标志位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	isDirectionUp: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//持续上升次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	continueUpCount: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//上一点的持续上升的次数,为了记录波峰的上升次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	continueUpFormerCount: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	continueDownCount: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	continueDownFormerCount: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//上一点的状态,上升还是下降 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	lastStatus: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//波峰值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	peakOfWave: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//波谷值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	valleyOfWave: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//检测到极快的波动的次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	timeOfPeakCount: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//开始添加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	bUpdateTimeOfPeakCount: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//开始更新的次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	startCount: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//停止跳 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	bStopJump: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//上次传感器的值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gravityOld: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	bUpState: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//开始时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	startTime: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	endTime: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var ActionJump = function ActionJump() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.jumpOpts = jumpOpts; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//其他波峰波谷参数相关数组记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.peakOfWaveArray = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.peakOfWaveMaxValue = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.valleyOfWaveArray = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.valleyOfWaveMinValue = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.peakOfWaveArrayValue = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.valleyOfWaveArrayValue = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.peakOfWaveArrayValueLinear = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.valleyOfWaveArrayValueLinear = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.highestCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//陀螺仪 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.oriGyroYArray = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.isJumpTop = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.event = new Event(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.frameCapacity = 6; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.frame = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.frameLength = 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.frameOffset = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.frameHitCapacity = 11; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.frameHit = []; //打击后的n帧 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for (var i = 0; i < this.frameCapacity; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var o = new Object(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// o.acc = [0, 0, 0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// o.gyr = [0, 0, 0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		o.maxValue = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		o.gyroValue = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		o.resultant = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this.frame.push(o); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ActionJump.prototype.addEventListener = function(type, listener) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.event.addEventListener(type, listener); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ActionJump.prototype.updateJump = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//使用三个轴的数据,计算重力轴的加速度。最后减去重力的加速度值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//********加速计******** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		lAccX, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		lAccY, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		lAccZ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} = data.linearAcc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		oAccX, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		oAccY, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		oAccZ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} = data.oriAcc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		oGyroX, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		oGyroY, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		oGyroZ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} = data.oriGyro; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		bYAxis 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} = data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let _tempAxisData = bYAxis ? oGyroY : oGyroX; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.detectorNewStep(data.resultant, lAccX, lAccY, lAccZ, oAccX, oAccY, oAccZ, data.runIndex, _tempAxisData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 检测步子,并开始计步 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 1.传入数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 2.如果检测到了波峰,并且符合时间差以及阈值的条件,则判定为1步 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 3.符合时间差条件,波峰波谷差值大于initialValue,则将该差值纳入阈值的计算中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ActionJump.prototype.detectorNewStep = function(resultant, linearX, linearY, linearZ, oriX, oriY, oriZ, _runIndex, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	_oGyroY) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let _judgmentValue = oriZ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//判断resultant 一个阀值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let limitResultant = 20; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (!this.jumpOpts.bStopJump) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (resultant > limitResultant && !this.jumpOpts.bUpState) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// console.log("开始判断时候:" + resultant); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.jumpOpts.bUpState = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.isJumpTop = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.highestCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//陀螺仪部分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.oriGyroYArray = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.peakOfWaveArrayValue = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.valleyOfWaveArrayValue = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.peakOfWaveArrayValueLinear = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.valleyOfWaveArrayValueLinear = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.jumpOpts.startCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//开始更新。加入时间判断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.jumpOpts.startTime = new Date().getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.event.trigger('resultant', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				type: "log", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				logType:'normal', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				data: "开始时间:"+this.jumpOpts.startTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (this.jumpOpts.bUpState) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			let newFrame = this.frame[(this.frameOffset + this.frameLength) % this.frameCapacity]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (_judgmentValue > 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				newFrame.maxValue = _judgmentValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (_judgmentValue > this.peakOfWaveMaxValue) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.peakOfWaveMaxValue += _judgmentValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} else if (_judgmentValue < -2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				newFrame.maxValue = _judgmentValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (_judgmentValue < this.valleyOfWaveMinValue) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.valleyOfWaveMinValue += _judgmentValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (Math.abs(_oGyroY) > 5){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.oriGyroYArray.push(_oGyroY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				newFrame.gyroValue = _oGyroY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			newFrame.resultant = resultant; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			let currTime = new Date().getTime(); //当前时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			let diffTime = currTime - this.jumpOpts.startTime; //当前时间减最初时间,得到当前时间差 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// if (diffTime > 200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 	this.jumpOpts.bUpState = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 	this.event.trigger('resultant', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 		type: "log", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 		logType:'normal', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 		data: "超时:"+diffTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 	}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 	return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//出现极值后 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// Math.abs(linearZ) < 7 && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (Math.abs(resultant) < 7) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.event.trigger('resultant', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					type: "log", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					logType:'normal', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					data: '出现极值后:'+ resultant+",时间:"+diffTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// if (diffTime < 150){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// this.jumpOpts.bUpState = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// this.event.trigger('resultant', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// 	type: "log", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// 	logType:'normal', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// 	data: "************触发成功************" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.highestCount++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (this.highestCount >= 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					//达到最高点, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.jumpOpts.bStopJump = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.jumpOpts.bUpdateTimeOfPeakCount = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					let _currentMaxValue = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (Math.abs(this.peakOfWaveMaxValue) > Math.abs(this.valleyOfWaveMinValue)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						_currentMaxValue = this.peakOfWaveMaxValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						_currentMaxValue = this.valleyOfWaveMinValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					let allOGyroValue = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					for (let i = 0; i < this.oriGyroYArray.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						allOGyroValue += this.oriGyroYArray[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					allOGyroValue /= this.oriGyroYArray.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					let _frameMaxValue = 0,_frameGyroValue = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					for (let i = 0; i < this.frame.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						_frameMaxValue += this.frame[i].maxValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						_frameGyroValue += this.frame[i].gyroValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					console.log("frame:"+_frameMaxValue + " == "+ _frameGyroValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					//后面通用使用这个类型传输数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.event.trigger('resultant', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						type: "stateDataOfJump", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						currentMaxValue: _frameMaxValue, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						peakOfWaveMaxValue: this.peakOfWaveMaxValue, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						valleyOfWaveMinValue: this.valleyOfWaveMinValue, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						oGyroValue: _frameGyroValue/this.frame.length, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						resultant: resultant, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						name: "highestCountEnd" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// this.jumpOpts.bUpState = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// this.jumpOpts.bStopJump = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.event.trigger('resultant', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						type: "stop" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.resetAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if ((this.frameOffset += 1) >= this.frameCapacity) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.frameOffset -= this.frameCapacity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}else if (this.jumpOpts.bUpdateTimeOfPeakCount ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// console.log("结束判断时候:" + resultant); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this.jumpOpts.timeOfPeakCount++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//todo 如果直跳,可以调节更小的 limitTimeOfPeakCount 30 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		let limitTimeOfPeakCount = 10; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (this.jumpOpts.timeOfPeakCount >= limitTimeOfPeakCount) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.jumpOpts.timeOfPeakCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.jumpOpts.bStopJump = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.jumpOpts.bUpState = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// this.event.trigger('resultant', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 	type: "stop" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// this.resetAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.jumpOpts.bUpdateTimeOfPeakCount = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// console.log("timeOfPeakCount >= " + limitTimeOfPeakCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ActionJump.prototype.setBUpState = function(value){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.jumpOpts.bUpState = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//重置对应的参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ActionJump.prototype.resetAll = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// console.log('******************* resetAll ******************'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.peakOfWaveArray = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.peakOfWaveMaxValue = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.valleyOfWaveArray = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.valleyOfWaveMinValue = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.highestCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.jumpOpts.continueDownFormerCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.jumpOpts.continueDownCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.jumpOpts.continueUpFormerCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	this.jumpOpts.continueUpCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if (typeof module === "object" && typeof module.exports === "object") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	module.exports = ActionJump; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |