示例#1
0
        /// <summary>
        /// Kuuntelee analogisen kontrollin (tatin tai liipaisimen) liikettä.
        /// </summary>
        /// <typeparam name="T1"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <typeparam name="T3"></typeparam>
        /// <param name="control">Kuunneltava kontrolli</param>
        /// <param name="trigger">Raja jonka liikkeen tulee ylittää</param>
        /// <param name="handler">Kuuntelija-aliohjelma</param>
        /// <param name="helpText">Ohjeteksti</param>
        /// <param name="p1">1. parametri</param>
        /// <param name="p2">2. parametri</param>
        /// <param name="p3">3. parametri</param>
        /// <returns></returns>
        public Listener ListenAnalog <T1, T2, T3>(AnalogControl control, double trigger, Action <AnalogState, T1, T2, T3> handler, string helpText, T1 p1, T2 p2, T3 p3)
        {
            ChangePredicate <GamePadState> rule = MakeTriggerRule(control, trigger);
            Action analogHandler = delegate { handler(GenerateAnalogState(control), p1, p2, p3); };

            return(AddListener(rule, control, GetAnalogName(control), helpText, analogHandler));
        }
示例#2
0
        public Listener Listen(AccelerometerDirection direction, double trigger, Action handler, string helpText)
        {
            Start();
            ChangePredicate <Vector3> rule = MakeTriggerRule(direction, trigger);

            return(AddListener(rule, direction, GetDirectionName(direction), helpText, handler));
        }
示例#3
0
        /// <summary>
        /// Lisää kuuntelijan ohjaimelle.
        /// </summary>
        /// <param name="rule"></param>
        /// <param name="control"></param>
        /// <param name="controlName"></param>
        /// <param name="helpText"></param>
        /// <param name="handler"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        protected Listener AddListener(ChangePredicate <ControllerState> rule, Control control, string controlName, string helpText, Delegate handler, params object[] args)
        {
            var l = new Listener <ControllerState, Control>(rule, Game.Instance.ControlContext, control, controlName, helpText, handler, args);

            listeners.Add(l);
            return(l);
        }
示例#4
0
        public Listener ListenAnalog(double trigger, Action <AnalogState> handler, string helpText)
        {
            Start();
            ChangePredicate <Vector3> rule = (Vector3 prev, Vector3 curr) => Project2d(curr).Magnitude >= trigger;
            Action analogHandler           = delegate { handler(new AccelerometerAnalogState(this.Reading, this.PreviousReading)); };

            return(AddListener(rule, AccelerometerDirection.Any, "Accelerometer", helpText, analogHandler));
        }
示例#5
0
        /// <summary>
        /// Kuuntelee hiiren rullaa.
        /// </summary>
        /// <param name="handler">Aliohjelma, joka käsittelee </param>
        /// <param name="helpText"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public Listener ListenWheelGeneric(Delegate handler, string helpText, params object[] parameters)
        {
            // Olisi selkeämpää antaa vain tämä käyttäjän käyttöön, mutta koska kaikki
            // muut Jypelin kuuntelijat myös vaativat parametrien tyyppien määrittelemistä,
            // niin vaaditaan sitten hiiren rullankin kanssa jotta toimintamalli on yhtenäinen.
            // Toki tyypin määrittelyssä on oppilaille suunnatussa kirjastossa se hyvä puoli,
            // että se tarkistaa että määritellyt tyypit (esim. T1 ja T2) eivät poikkea
            // parametrien tyypeistä (ellei parametrien tyyppejä haeta automaattisesti, mikä
            // yleensä tapahtuu).
            ChangePredicate <MouseState> rule = MakeWheelTriggerRule();

            return(AddListener(rule, MouseButton.None, "Mouse wheel", helpText, handler, parameters));
        }
示例#6
0
        /// <summary>
        /// Kuuntelee peliohjaimen nappulan painalluksia.
        /// </summary>
        /// <typeparam name="T1"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <typeparam name="T3"></typeparam>
        /// <param name="button">Nappi</param>
        /// <param name="state">Napin tila</param>
        /// <param name="handler">Kuuntelija-aliohjelma</param>
        /// <param name="helpText">Ohjeteksti</param>
        /// <param name="p1">1. parametri kuuntelija-aliohjelmalle</param>
        /// <param name="p2">2. parametri kuuntelija-aliohjelmalle</param>
        /// <param name="p3">3. parametri kuuntelija-aliohjelmalle</param>
        public Listener Listen <T1, T2, T3>(Button button, ButtonState state, Action <T1, T2, T3> handler, string helpText, T1 p1, T2 p2, T3 p3)
        {
            ChangePredicate <GamePadState> rule = MakeTriggerRule(button, state);

            return(AddListener(rule, button, GetButtonName(button), helpText, handler, p1, p2, p3));
        }
示例#7
0
        /// <summary>
        /// Kuuntelee peliohjaimen nappulan painalluksia.
        /// </summary>
        /// <param name="button">Nappi</param>
        /// <param name="state">Napin tila</param>
        /// <param name="handler">Kuuntelija-aliohjelma</param>
        /// <param name="helpText">Ohjeteksti</param>
        public Listener Listen(Button button, ButtonState state, Action handler, string helpText)
        {
            ChangePredicate <GamePadState> rule = MakeTriggerRule(button, state);

            return(AddListener(rule, button, GetButtonName(button), helpText, handler));
        }
示例#8
0
        /// <summary>
        /// Kuuntelee näppäinten painalluksia.
        /// </summary>
        /// <typeparam name="T1">1. parametrin tyyppi</typeparam>
        /// <typeparam name="T2">2. parametrin tyyppi</typeparam>
        /// <typeparam name="T3">3. parametrin tyyppi</typeparam>
        /// <typeparam name="T4">4. parametrin tyyppi</typeparam>
        /// <param name="k">Näppäin</param>
        /// <param name="state">Näppäimen tila</param>
        /// <param name="handler">Mitä tehdään</param>
        /// <param name="helpText">Ohjeteksti</param>
        /// <param name="p1">1. parametri</param>
        /// <param name="p2">2. parametri</param>
        /// <param name="p3">3. parametri</param>
        /// <param name="p4">4. parametri</param>
        public Listener Listen <T1, T2, T3, T4>(Key k, ButtonState state, Action <T1, T2, T3, T4> handler, string helpText, T1 p1, T2 p2, T3 p3, T4 p4)
        {
            ChangePredicate <KeyboardState> rule = MakeTriggerRule(k, state);

            return(AddListener(rule, k, GetKeyName(k), helpText, handler, p1, p2, p3, p4));
        }
示例#9
0
        /// <summary>
        /// Kuuntelee näppäinten painalluksia.
        /// </summary>
        /// <typeparam name="T">Parametrin tyyppi</typeparam>
        /// <param name="k">Näppäin</param>
        /// <param name="state">Näppäimen tila</param>
        /// <param name="handler">Mitä tehdään</param>
        /// <param name="helpText">Ohjeteksti</param>
        /// <param name="p">Parametri</param>
        public Listener Listen <T>(Key k, ButtonState state, Action <T> handler, string helpText, T p)
        {
            ChangePredicate <KeyboardState> rule = MakeTriggerRule(k, state);

            return(AddListener(rule, k, GetKeyName(k), helpText, handler, p));
        }
示例#10
0
        /// <summary>
        /// Kuuntelee hiirenpainalluksia annetun peliolion päällä.
        /// </summary>
        /// <typeparam name="T1"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <typeparam name="T3"></typeparam>
        /// <param name="obj">Olio, jonka päällä hiiren kursorin tulisi olla.</param>
        /// <param name="button">Hiiren nappula.</param>
        /// <param name="state">Nappulan tila.</param>
        /// <param name="handler">Tapahtuman käsittelijä.</param>
        /// <param name="helpText">Ohjeteksti.</param>
        /// <param name="p1"></param>
        /// <param name="p2"></param>
        /// <param name="p3"></param>
        public Listener ListenOn <T1, T2, T3>(GameObject obj, MouseButton button, ButtonState state, Action <T1, T2, T3> handler, string helpText, T1 p1, T2 p2, T3 p3)
        {
            ChangePredicate <MouseState> rule = MakeTriggerRule(obj, HoverState.On, button, state);

            return(AddListener(rule, button, GetButtonName(button, obj), helpText, handler, p1, p2, p3));
        }
示例#11
0
        /// <summary>
        /// Kuuntelee hiirenpainalluksia annetun peliolion päällä.
        /// </summary>
        /// <typeparam name="T">Tapahtuman käsittelijän parametrin tyyppi.</typeparam>
        /// <param name="obj">Olio, jonka päällä hiiren kursorin tulisi olla.</param>
        /// <param name="hoverstate">Hiiren leijumistila, jolloin painallus katsotaan tapahtuneeksi.
        /// Käytetään vain, jos hiiren nappulan tilaksi annetaan <see cref="ButtonState.Irrelevant"/></param>
        /// <param name="button">Hiiren nappula.</param>
        /// <param name="state">Nappulan tila.</param>
        /// <param name="handler">Tapahtuman käsittelijä.</param>
        /// <param name="helpText">Ohjeteksti.</param>
        /// <param name="p">Tapahtuman käsittelijän parametri.</param>
        public Listener ListenOn <T>(GameObject obj, HoverState hoverstate, MouseButton button, ButtonState state, Action <T> handler, string helpText, T p)
        {
            ChangePredicate <MouseState> rule = MakeTriggerRule(obj, hoverstate, button, state);

            return(AddListener(rule, button, GetButtonName(button, obj), helpText, handler, p));
        }
示例#12
0
        /// <summary>
        /// Kuuntelee hiiren liikettä.
        /// </summary>
        /// <typeparam name="T1"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <typeparam name="T3"></typeparam>
        /// <param name="trigger">Raja jonka liikkeen tulee ylittää</param>
        /// <param name="handler">Kuuntelija-aliohjelma</param>
        /// <param name="helpText">Ohjeteksti</param>
        /// <param name="p1">1. parametri kuuntelija-aliohjelmalle</param>
        /// <param name="p2">2. parametri kuuntelija-aliohjelmalle</param>
        /// <param name="p3">3. parametri kuuntelija-aliohjelmalle</param>
        public Listener ListenMovement <T1, T2, T3>(double trigger, Action <T1, T2, T3> handler, string helpText, T1 p1, T2 p2, T3 p3)
        {
            ChangePredicate <MouseState> rule = MakeTriggerRule(trigger);

            return(AddListener(rule, MouseButton.None, "Mouse movement", helpText, handler, p1, p2, p3));
        }
示例#13
0
        /// <summary>
        /// Kuuntelee hiiren liikettä.
        /// </summary>
        /// <param name="trigger">Raja jonka liikkeen tulee ylittää</param>
        /// <param name="handler">Kuuntelija-aliohjelma</param>
        /// <param name="helpText">Ohjeteksti</param>
        public Listener ListenMovement(double trigger, Action handler, string helpText)
        {
            ChangePredicate <MouseState> rule = MakeTriggerRule(trigger);

            return(AddListener(rule, MouseButton.None, "Mouse movement", helpText, handler));
        }
示例#14
0
        /// <summary>
        /// Kuuntelee hiiren nappulan painalluksia.
        /// </summary>
        /// <typeparam name="T1"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <param name="button">Nappi</param>
        /// <param name="state">Napin tila</param>
        /// <param name="handler">Kuuntelija-aliohjelma</param>
        /// <param name="helpText">Ohjeteksti</param>
        /// <param name="p1">1. parametri kuuntelija-aliohjelmalle</param>
        /// <param name="p2">2. parametri kuuntelija-aliohjelmalle</param>
        public Listener Listen <T1, T2>(MouseButton button, ButtonState state, Action <T1, T2> handler, string helpText, T1 p1, T2 p2)
        {
            ChangePredicate <MouseState> rule = MakeTriggerRule(button, state);

            return(AddListener(rule, button, GetButtonName(button), helpText, handler, p1, p2));
        }
示例#15
0
文件: Mouse.cs 项目: Anttifer/Jypeli
        public Listener ListenMovement <T1, T2>(double trigger, Action <AnalogState, T1, T2> handler, string helpText, T1 p1, T2 p2)
        {
            ChangePredicate <MouseState> rule = MakeTriggerRule(trigger);

            return(AddListener(rule, MouseButton.None, "Mouse movement", helpText, handler, new MouseAnalogState(this), p1, p2));
        }
示例#16
0
文件: Mouse.cs 项目: Anttifer/Jypeli
        public Listener Listen <T1, T2, T3>(MouseButton button, ButtonState state, Action <AnalogState, T1, T2, T3> handler, string helpText, T1 p1, T2 p2, T3 p3)
        {
            ChangePredicate <MouseState> rule = MakeTriggerRule(button, state);

            return(AddListener(rule, button, GetButtonName(button), helpText, handler, new MouseAnalogState(this), p1, p2, p3));
        }