53 Vector2 v = CurrentState.ThumbSticks.Left;
54 return new Vector( v.X, v.Y );
66 Vector2 v = CurrentState.ThumbSticks.Right;
67 return new Vector( v.X, v.Y );
77 get {
return CurrentState.Triggers.Left; }
86 get {
return CurrentState.Triggers.Right; }
96 Vector2 v = CurrentState.ThumbSticks.Left - PrevState.ThumbSticks.Left;
97 return new Vector( v.X, v.Y );
108 Vector2 v = CurrentState.ThumbSticks.Right - PrevState.ThumbSticks.Right;
109 return new Vector( v.X, v.Y );
118 get {
return CurrentState.Triggers.Left - PrevState.Triggers.Left; }
126 get {
return CurrentState.Triggers.Right - PrevState.Triggers.Left; }
142 Buttons buttons = (Buttons)b;
147 return delegate( GamePadState prev, GamePadState curr ) {
return ( curr.IsButtonUp( buttons ) ); };
150 return delegate( GamePadState prev, GamePadState curr ) {
return ( curr.IsButtonDown( buttons ) ); };
153 return delegate( GamePadState prev, GamePadState curr ) {
return ( prev.IsButtonUp( buttons ) && curr.IsButtonDown( buttons ) ); };
156 return delegate( GamePadState prev, GamePadState curr ) {
return ( prev.IsButtonDown( buttons ) && curr.IsButtonUp( buttons ) ); };
159 return AlwaysTrigger;
167 return delegate( GamePadState prev, GamePadState curr )
169 double xdist = curr.ThumbSticks.Left.X - prev.ThumbSticks.Left.X;
170 double ydist = curr.ThumbSticks.Left.Y - prev.ThumbSticks.Left.Y;
171 return xdist * xdist + ydist * ydist > moveTrigger * moveTrigger;
175 return delegate( GamePadState prev, GamePadState curr )
177 double xdist = curr.ThumbSticks.Right.X - prev.ThumbSticks.Right.X;
178 double ydist = curr.ThumbSticks.Right.Y - prev.ThumbSticks.Right.Y;
179 return xdist * xdist + ydist * ydist > moveTrigger * moveTrigger;
183 return delegate( GamePadState prev, GamePadState curr )
185 return Math.Abs( curr.Triggers.Left - prev.Triggers.Left ) > moveTrigger;
189 return delegate( GamePadState prev, GamePadState curr )
191 return Math.Abs( curr.Triggers.Right - prev.Triggers.Right ) > moveTrigger;
195 throw new ArgumentException( control.ToString() +
" is not a valid analog control for a GamePad" );
200 return String.Format(
"GamePad{0} {1}",
playerIndex.ToString(), b.ToString() );
205 return String.Format(
"GamePad{0} {1}",
playerIndex.ToString(), a.ToString() );
216 public void Vibrate(
double leftMotor,
double rightMotor,
double leftAcceleration,
double rightAcceleration,
double time )
245 return AddListener( rule, button,
GetButtonName( button ), helpText, handler );
260 return AddListener( rule, button,
GetButtonName( button ), helpText, handler, p );
277 return AddListener( rule, button,
GetButtonName( button ), helpText, handler, p1, p2 );
293 public Listener Listen<T1, T2, T3>(
Button button,
ButtonState state, Action<T1, T2, T3> handler,
string helpText, T1 p1, T2 p2, T3 p3 )
296 return AddListener( rule, button,
GetButtonName( button ), helpText, handler, p1, p2, p3 );
309 ChangePredicate<GamePadState> rule =
MakeTriggerRule( control, trigger );
311 return AddListener( rule, control,
GetAnalogName( control ), helpText, analogHandler );
323 throw new NotImplementedException(
"Unsupported Controller / GamePad control for ListenAnalog: " + control.ToString());
339 ChangePredicate<GamePadState> rule =
MakeTriggerRule( control, trigger );
341 return AddListener( rule, control,
GetAnalogName( control ), helpText, analogHandler);
358 ChangePredicate<GamePadState> rule =
MakeTriggerRule( control, trigger );
360 return AddListener( rule, control,
GetAnalogName( control ), helpText, analogHandler);
377 public Listener ListenAnalog<T1, T2, T3>(
AnalogControl control,
double trigger, Action<AnalogState, T1, T2, T3> handler,
string helpText, T1 p1, T2 p2, T3 p3 )
379 ChangePredicate<GamePadState> rule =
MakeTriggerRule( control, trigger );
381 return AddListener( rule, control,
GetAnalogName( control ), helpText, analogHandler);