Exemple #1
0
        public void FadeOutSound(float interval)
        {
            var emitter  = Vector2.Zero;
            var listener = Vector2.Zero;

            if (IsPositional)
            {
                var tranform = Owner.GetComponent <Cv_TransformComponent>();

                if (tranform != null)
                {
                    emitter = new Vector2(tranform.Position.X, tranform.Position.Y);
                }

                var playerView = CaravelApp.Instance.GetPlayerView(Cv_Player.One);

                if (playerView != null && playerView.ListenerEntity != null)
                {
                    var listenerTransform = playerView.ListenerEntity.GetComponent <Cv_TransformComponent>();

                    if (listenerTransform != null)
                    {
                        listener = new Vector2(listenerTransform.Position.X, listenerTransform.Position.Y);
                    }
                }
            }

            Cv_Event_PlaySound fadeEvent = new Cv_Event_PlaySound(Owner.ID, this, SoundResource, Looping, 0, Pan,
                                                                  Pitch, true, interval, IsPositional, emitter, listener);

            Cv_EventManager.Instance.QueueEvent(fadeEvent);
        }
Exemple #2
0
        public void PlayOneShotSound(string soundResource, float volume, float pan, float pitch, bool immediate = false)
        {
            var emitter  = Vector2.Zero;
            var listener = Vector2.Zero;

            if (IsPositional)
            {
                var tranform = Owner.GetComponent <Cv_TransformComponent>();

                if (tranform != null)
                {
                    emitter = new Vector2(tranform.Position.X, tranform.Position.Y);
                }

                var playerView = CaravelApp.Instance.GetPlayerView(Cv_Player.One);

                if (playerView != null && playerView.ListenerEntity != null)
                {
                    var listenerTransform = playerView.ListenerEntity.GetComponent <Cv_TransformComponent>();

                    if (listenerTransform != null)
                    {
                        listener = new Vector2(listenerTransform.Position.X, listenerTransform.Position.Y);
                    }
                }
            }

            Cv_Event_PlaySound playEvt = new Cv_Event_PlaySound(Owner.ID, this, soundResource, false, volume, pan,
                                                                pitch, false, 0, IsPositional, emitter, listener);

            if (immediate)
            {
                Cv_EventManager.Instance.TriggerEvent(playEvt);
            }
            else
            {
                Cv_EventManager.Instance.QueueEvent(playEvt);
            }
        }