Example #1
0
    public Block(ArkanoidLevelScreen _levelInst, TiledObject _obj) : base("ArkanoidSprites/Breakout-006-A.png", 5, 5)
    {
        SetXY(_obj.X, _obj.Y);
        _blockHealth = _obj.GetIntProperty("health");

        _level = _levelInst;

        _canBlockBeDestroyed = _obj.GetBoolProperty("canBeDestroyed");
        SetFrame(_obj.GetIntProperty("type"));

        _destroyableBlockSound = new Sound("ArkanoidSounds/BallHitBox.mp3");
    }
        private void PlayAudioOrMusic(string text)
        {
            var match = _audioRegex.Match(text);

            if (match.Success)
            {
                var propName = match.Value.Replace("[", "").Replace("]", "");

                var fileName = _tiledData.GetStringProperty(propName, "");

                if (string.IsNullOrWhiteSpace(fileName))
                {
                    return;
                }

                if (propName.StartsWith("audio_"))
                {
                    //Try find loop property
                    int audioIndex  = int.TryParse(propName.Replace("audio_", ""), out audioIndex) ? audioIndex : -1;
                    var loopProp    = _tiledData.GetBoolProperty($"audio_loop_{audioIndex}", false);
                    var audioVolume =
                        _tiledData.GetFloatProperty($"audio_volume_{audioIndex}", Settings.SFX_Default_Volume);

                    if (loopProp)
                    {
                        GameSoundManager.Instance.PlayFxLoop(fileName, audioVolume);
                    }
                    else
                    {
                        GameSoundManager.Instance.PlayFx(fileName, audioVolume);
                    }
                }
                else if (propName.StartsWith("music_"))
                {
                    int   musicIndex  = int.TryParse(propName.Replace("music_", ""), out musicIndex) ? musicIndex : -1;
                    float musicVolume =
                        _tiledData.GetFloatProperty($"music_volume_{musicIndex}", Settings.Flashbacks_Music_Volume);

                    GameSoundManager.Instance.FadeOutCurrentMusic();

                    GameSoundManager.Instance.FadeInMusic(fileName, musicVolume,
                                                          Settings.Flashbacks_Music_Fadein_Duration);
                }
            }
        }