Пример #1
0
 /// <summary>
 /// Käynnistää ajastimen.
 /// </summary>
 public void Start()
 {
     _enabled      = true;
     timeToTrigger = trigInterval;
     timeToCount   = countInterval;
     timers.Add(this);
 }
Пример #2
0
        /// <summary>
        /// Laittaa kappaleen värähtelemään edestakaisin nykyisen paikkansa ympärillä tietyn akselin suuntaisesti.
        /// </summary>
        /// <param name="axis">Akseli, jonka suunnassa värähdellään. Pituudella ei väliä, vain suunnalla.</param>
        /// <param name="amplitude">Amplitudi eli ääripäiden välinen etäisyys.</param>
        /// <param name="frequency">Taajuus, eli kuinka monta jaksoa sekunnissa värähdellään.</param>
        /// <param name="phase">Vaihe, eli mistä kohtaa jaksoa aloitetaan. Vaihteluväli 0 - 2 * Math.PI (siniaalto)</param>
        /// <param name="damping">Vaimennuskerroin. 0 = ei vaimene, mitä suurempi niin sitä nopeammin vaimenee.</param>
        public void Oscillate(Vector axis, double amplitude, double frequency, double phase = 0, double damping = 0)
        {
            if (oscillators == null)
            {
                oscillators = new SynchronousList <Oscillator>();
            }

            oscillators.Add(new LinearOscillator(this, axis, amplitude, frequency, phase, damping));
            IsUpdated = true;
        }
Пример #3
0
        /// <summary>
        /// Laukaisee aliohjelman kun annetut operaatiot on suoritettu.
        /// </summary>
        /// <param name="callback">Aliohjelma</param>
        /// <param name="actions">Operaatiot</param>
        public void TriggerOnComplete(Action callback, params AsyncOperation[] actions)
        {
            triggers.Add(new AsyncTrigger(actions.ToList().FindAll(o => !o.IsCompleted), callback));

#if JYPELI
            triggers.Update(Game.Time);
#else
            triggers.Update(Time.Zero);
#endif
        }
Пример #4
0
        private Listener AddListener(SynchronousList <TouchListener> list, Predicate <Touch> rule, string helpText, Delegate handler, params object[] args)
        {
            var l = new TouchListener(rule, Game.Instance.ControlContext, helpText, handler, args);

            list.Add(l);
            return(l);
        }
Пример #5
0
        private void InitLayers()
        {
            Layers              = new SynchronousList <Layer>(-3);
            Layers.ItemAdded   += OnLayerAdded;
            Layers.ItemRemoved += OnLayerRemoved;

            for (int i = 0; i < 7; i++)
            {
                Layers.Add(new Layer());
            }

            // This is the widget layer
            Layers.Add(Layer.CreateStaticLayer());

            Layers.UpdateChanges();
        }
Пример #6
0
        private Listener AddGestureListener(Predicate <Gesture> rule, string helpText, Delegate handler, params object[] args)
        {
            Predicate <Touch> touchRule = (Touch t) => t is Gesture && rule((Gesture)t);
            var l = new TouchListener(touchRule, Game.Instance.ControlContext, helpText, handler, args);

            GestureListeners.Add(l);
            return(l);
        }
Пример #7
0
        /// <summary>
        /// Lisää vapaamuotoisen tapahtumankäsittelijän.
        /// </summary>
        /// <param name="condition">Ehto josta tapahtuma laukeaa.</param>
        /// <param name="handler">Kutsuttava funktio.</param>
        public CustomEventHandler AddCustomHandler(Func <bool> condition, Action handler)
        {
            if (handlers == null)
            {
                handlers = new SynchronousList <CustomEventHandler>();
            }

            var handlerObj = new CustomEventHandler(condition, handler);

            handlers.Add(handlerObj);
            return(handlerObj);
        }
Пример #8
0
        private void ObjectAdded(IGameObject obj)
        {
            if (obj is ParticleSystem system)
            {
                Effects.Add(system);
            }
            else
            if (obj is CustomDrawable)
            {
                objectsWithDrawMethod.Add(obj);
            }
            else if (obj.Image != null)
            {
                objectsWithImage.Add(obj);
            }
            else
            {
                objectsWithoutImage.Add(obj);
            }

            ((IGameObjectInternal)obj).Layer = this;
        }
Пример #9
0
        private void ObjectAdded(IGameObject obj)
        {
//#if !DISABLE_EFFECTS
            if (obj is ParticleSystem)
            {
                Effects.Add((ParticleSystem)obj);
            }
            else
//#endif
            if (obj is CustomDrawable)
            {
                objectsWithDrawMethod.Add(obj);
            }
            else if (obj.Image != null)
            {
                objectsWithImage.Add(obj);
            }
            else
            {
                objectsWithoutImage.Add(obj);
            }

            ((IGameObjectInternal)obj).Layer = this;
        }
Пример #10
0
 /// <summary>
 /// Täristää peliohjainta.
 /// </summary>
 /// <param name="leftMotor">Vasemmanpuoleisen moottorin tärinän määrä (maksimi 1).</param>
 /// <param name="rightMotor">Oikeanpuoleisen moottorin tärinän määrä (maksimi 1) .</param>
 /// <param name="leftAcceleration">Vasemmanpuoleisen moottorin tärinäkiihtyvyys (yksikköä sekunnissa).</param>
 /// <param name="rightAcceleration">Oikeanpuoleisen moottorin tärinäkiihtyvyys (yksikköä sekunnissa).</param>
 /// <param name="time">Aika, jonka tärinä kestää (sekunteina).</param>
 public void Vibrate(double leftMotor, double rightMotor, double leftAcceleration, double rightAcceleration, double time)
 {
     vibrations.Add(new Vibration(leftMotor, rightMotor, leftAcceleration, rightAcceleration, time));
 }
Пример #11
0
 /// <summary>
 /// Lisää liitoksen peliin.
 /// </summary>
 public void Add(IAxleJoint j)
 {
     Joints.Add(j);
 }
Пример #12
0
 internal void Add(IGameObject o)
 {
     Objects.Add(o);
 }
Пример #13
0
 private void AddControls()
 {
     _controls.Add(Game.TouchPanel.ListenOn(this, ButtonState.Pressed, StartDrag, null).InContext(this));
     _controls.Add(Game.TouchPanel.Listen(ButtonState.Released, EndDrag, null).InContext(this));
 }