Sébastien Bénard преди 3 години
родител
ревизия
126bab3422
променени са 1 файла, в които са добавени 32 реда и са изтрити 0 реда
  1. 32 0
      hxd/Pad.hx

+ 32 - 0
hxd/Pad.hx

@@ -223,12 +223,16 @@ class Pad {
 	public var config : PadConfig = DEFAULT_CONFIG;
 	public var xAxis(get,never) : Float;
 	public var yAxis(get,never) : Float;
+	public var rxAxis(get,never) : Float;
+	public var ryAxis(get,never) : Float;
 	public var axisDeadZone : Float = 0.1;
 	public var buttons : Array<Bool> = [];
 	public var values : Array<Float> = [];
 	var prevButtons : Array<Bool> = [];
 	var rawXAxis : Float = 0.;
 	var rawYAxis : Float = 0.;
+	var rawRXAxis : Float = 0.;
+	var rawRYAxis : Float = 0.;
 
 	function get_xAxis() {
 		if( rawXAxis*rawXAxis + rawYAxis*rawYAxis < axisDeadZone*axisDeadZone ) return 0.;
@@ -240,6 +244,16 @@ class Pad {
 		return rawYAxis;
 	}
 
+	function get_rxAxis() {
+		if( rawRXAxis*rawRXAxis + rawRYAxis*rawRYAxis < axisDeadZone*axisDeadZone ) return 0.;
+		return rawRXAxis;
+	}
+
+	function get_ryAxis() {
+		if( rawRXAxis*rawRXAxis + rawRYAxis*rawRYAxis < axisDeadZone*axisDeadZone ) return 0.;
+		return rawRYAxis;
+	}
+
 	public dynamic function onDisconnect(){
 	}
 
@@ -257,6 +271,7 @@ class Pad {
 
 	public function reset() {
 		rawXAxis = rawYAxis = 0;
+		rawRXAxis = rawRYAxis = 0;
 		for( i in 0...buttons.length ) buttons[i] = false;
 		for( i in 0...buttons.length ) prevButtons[i] = false;
 		for( i in 0...values.length ) values[i] = 0;
@@ -332,6 +347,7 @@ class Pad {
 				p.d.enabled = true;
 				var axisCount = 0;
 				var axisX = 0, axisY = 1;
+				var raxisX = 2, raxisY = 3;
 				for( i in 0...p.d.numControls ) {
 					var c = p.d.getControlAt(i);
 					var cid = c.id;
@@ -348,6 +364,10 @@ class Pad {
 								p.rawXAxis = v;
 							else if( axisID == axisY )
 								p.rawYAxis = -v;
+							else if( axisID == raxisX)
+								p.rawRXAxis = v;
+							else if( axisID == raxisY)
+								p.rawRYAxis = -v;
 						});
 					} else if( StringTools.startsWith(c.id, "BUTTON_") ) {
 						c.addEventListener(flash.events.Event.CHANGE, function(_) {
@@ -460,6 +480,10 @@ class Pad {
 			rawXAxis = v;
 		else if( axisId == 1 )
 			rawYAxis = v;
+		else if( axisId == 2 )
+			rawRXAxis = v;
+		else if( axisId == 3 )
+			rawRYAxis = v;
 	}
 
 	static function initPad( index ){
@@ -538,6 +562,10 @@ class Pad {
 					p.rawXAxis = v;
 				else if( ii == GameController.CONFIG.analogY )
 					p.rawYAxis = -v;
+				else if( ii == GameController.CONFIG.ranalogX )
+					p.rawRXAxis = v;
+				else if( ii == GameController.CONFIG.ranalogY )
+					p.rawRYAxis = -v;
 			}
 		}
 	}
@@ -588,6 +616,10 @@ class Pad {
 					p.rawXAxis = x;
 					p.rawYAxis = y;
 				}
+				else if( i == 1 ) {
+					p.rawRXAxis = x;
+					p.rawRYAxis = y;
+				}
 			}
 		}
 	}