예제 #1
0
        protected override int GetGameSpeed(SettingOptions.GameSpeed gameSpeedSetting)
        {
            var levelIndex         = (int)Math.Floor(Level / increaseFallingSpeedLevelCount);
            var fallingSpeed       = baseFallingSpeed;
            var normalFallingSpeed = MathHelper.Clamp((int)(baseFallingSpeed * (1f - fallingSpeedFactor * levelIndex)), minFallingSpeed, baseFallingSpeed);

            switch (gameSpeedSetting)
            {
            case GameSpeed.Normal:
                fallingSpeed = normalFallingSpeed;

                if (ActiveBonus?.Type == BonusType.TimeSlowdown)
                {
                    fallingSpeed = fallingSpeed * slowDownPower;     // if is slowdown activated return slower speeds
                }
                break;

            case GameSpeed.Speedup:
                fallingSpeed = MathHelper.Min(normalFallingSpeed, 50);     // since i don't want to fall slower than normal speed is, i return slowest speed
                break;

            case GameSpeed.Falling:
                fallingSpeed = 5; break;
            }

            return(fallingSpeed);
        }
예제 #2
0
        protected override int GetGameSpeed(SettingOptions.GameSpeed gameSpeedSetting)
        {
            var fallingSpeed = 16;

            switch (gameSpeedSetting)
            {
            case GameSpeed.Normal:
                if (LevelsToSpeedDic.ContainsKey(Level))
                {
                    fallingSpeed = LevelsToSpeedDic[Level];
                }
                break;

            case GameSpeed.Speedup:
                fallingSpeed = 50; break;

            case GameSpeed.Falling:
                fallingSpeed = 5; break;
            }

            return(fallingSpeed);
        }
예제 #3
0
 /// <summary>
 /// Game speed is defined by game score
 /// </summary>
 protected virtual int GetGameSpeed(SettingOptions.GameSpeed gameSpeedSetting)
 {
     return(0);
 }