33using Microsoft.Xna.Framework;
34using Microsoft.Xna.Framework.Input;
54 return new Vector( v.X, v.Y );
67 return new Vector( v.X, v.Y );
97 return new Vector( v.X, v.Y );
109 return new Vector( v.X, v.Y );
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 ) ); };
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 )
218 vibrations.Add(
new Vibration( leftMotor, rightMotor, leftAcceleration, rightAcceleration, time ) );
293 public Listener Listen<T1, T2, T3>(
Button button,
ButtonState state, Action<T1, T2, T3> handler,
string helpText, T1 p1, T2 p2, T3 p3 )
309 ChangePredicate<GamePadState> rule =
MakeTriggerRule( control, trigger );
323 throw new NotImplementedException(
"Unsupported Controller / GamePad control for ListenAnalog: " + control.ToString());
339 ChangePredicate<GamePadState> rule =
MakeTriggerRule( control, trigger );
358 ChangePredicate<GamePadState> rule =
MakeTriggerRule( control, trigger );
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 );
System.Numerics.Vector2 Vector2
static void Execute(PlayerIndex p, IEnumerable< Vibration > vibrations)
Listener ListenAnalog< T >(AnalogControl control, double trigger, Action< AnalogState, T > handler, string helpText, T p)
Kuuntelee analogisen kontrollin (tatin tai liipaisimen) liikettä.
double LeftTriggerState
Vasemman liipaisimen tila. Vaihtelee välillä 0 - 1.
string GetAnalogName(AnalogControl a)
Listener Listen< T1, T2, T3 >(Button button, ButtonState state, Action< T1, T2, T3 > handler, string helpText, T1 p1, T2 p2, T3 p3)
Kuuntelee peliohjaimen nappulan painalluksia.
GamePadAnalogState GenerateAnalogState(AnalogControl control)
double LeftTriggerChange
Vasemman liipaisimen tilan viimeisin muutos.
Vector LeftThumbDirection
Vasemman tatin suuntavektori. Vaihtelee välillä (-1, -1) - (1, 1)
SynchronousList< Vibration > vibrations
Vector RightThumbChange
Oikean tatin suuntavektorin viimeisin muutos (liike).
Listener ListenAnalog< T1, T2, T3 >(AnalogControl control, double trigger, Action< AnalogState, T1, T2, T3 > handler, string helpText, T1 p1, T2 p2, T3 p3)
Kuuntelee analogisen kontrollin (tatin tai liipaisimen) liikettä.
void UpdateVibrations(Time time)
string GetButtonName(Button b)
void StopVibration()
Lopettaa täristyksen.
Vector LeftThumbChange
Vasemman tatin suuntavektorin viimeisin muutos (liike).
override GamePadState GetState()
Lukee ja palauttaa laitteen viimeisimmän tilan.
Listener Listen(Button button, ButtonState state, Action handler, string helpText)
Kuuntelee peliohjaimen nappulan painalluksia.
double RightTriggerState
Oikean liipaisimen tila. Vaihtelee välillä 0 - 1.
Listener ListenAnalog(AnalogControl control, double trigger, Action< AnalogState > handler, string helpText)
Kuuntelee analogisen kontrollin (tatin tai liipaisimen) liikettä.
Listener Listen< T >(Button button, ButtonState state, Action< T > handler, string helpText, T p)
Kuuntelee peliohjaimen nappulan painalluksia.
Listener ListenAnalog< T1, T2 >(AnalogControl control, double trigger, Action< AnalogState, T1, T2 > handler, string helpText, T1 p1, T2 p2)
Kuuntelee analogisen kontrollin (tatin tai liipaisimen) liikettä.
void Vibrate(double leftMotor, double rightMotor, double leftAcceleration, double rightAcceleration, double time)
Täristää peliohjainta.
Vector RightThumbDirection
Oikean tatin suuntavektori. Vaihtelee välillä (-1, -1) - (1, 1)
GamePad(PlayerIndex index)
Listener Listen< T1, T2 >(Button button, ButtonState state, Action< T1, T2 > handler, string helpText, T1 p1, T2 p2)
Kuuntelee peliohjaimen nappulan painalluksia.
double RightTriggerChange
Oikean liipaisimen tilan viimeisin muutos.
ChangePredicate< GamePadState > MakeTriggerRule(Button b, ButtonState state)
ChangePredicate< GamePadState > MakeTriggerRule(AnalogControl control, double moveTrigger)
Synkroninen lista, eli lista joka päivittyy vasta kun sen Update-metodia kutsutaan....
ControllerState CurrentState
Nykyinen tila.
ControllerState PrevState
Viimeisin tila.
Listener AddListener(ChangePredicate< ControllerState > rule, Control control, string controlName, string helpText, Delegate handler, params object[] args)
static readonly ChangePredicate< ControllerState > AlwaysTrigger
Ohjaintapahtumien kuuntelija.
ButtonState
Napin (minkä tahansa) asento.
AnalogControl
Analoginen ohjain. Tämä voi olla joko painike, jota voi painaa eri voimakkuuksilla (padiohjaimen liip...
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
double Magnitude
Vektorin pituus.