Ejemplo n.º 1
0
        //產生亂數�E�E�E�數字不要E�E��E�褁E�E��E�允E
        private int GetRandomValue(SingleHitObjectConvertParameter singleTupleHitObjects, int index)
        {
            //getTheTotal
            var totalHitObject = singleTupleHitObjects.ListBaseHitObject.Count;

            return((int)singleTupleHitObjects.StartTime + index * (totalHitObject - 1));
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     產生隨機參數
        /// </summary>
        /// <returns></returns>
        private int CalRandNumber(SingleHitObjectConvertParameter singleTuple, int index)
        {
            var addNumber = 0;

            if (index == 1) //第二個物件
            {
                addNumber = 2;
            }
            if (index == 2) //第三個物件
            {
                addNumber = 1;
            }
            if (index == 2) //第四個物件
            {
                addNumber = 3;
            }

            return(singleTuple.MultiNumber + (int)singleTuple.StartTime + singleTuple.ListBaseHitObject.Count + addNumber);

            //BPM,為了避免BPM 200 的譜特別簡單
            var periodTime = (int)(60 / (double)(int)_singleSlideParameter.SliceConvertParameter.BPM) * 1000;

            //
            return(singleTuple.MultiNumber + (int)singleTuple.StartTime % periodTime + singleTuple.ListBaseHitObject.Count);
        }
Ejemplo n.º 3
0
 internal void Process(SingleHitObjectConvertParameter singleTuple)
 {
     for (var i = 0; i < singleTuple.ListBaseHitObject.Count; i++)
     {
         singleTuple.ListBaseHitObject[i].Shape = CalRandomShape(singleTuple, i);
     }
 }
Ejemplo n.º 4
0
        internal void Process(SingleHitObjectConvertParameter singleTuple, int nowIndex)
        {
            //上一個群組的物件
            _lastHitObjectTuple = _singleSlideParameter.HitObjectConvertParameter.ListSingleHitObjectConvertParameter[nowIndex - 1];

            if (FisrtConbo)
            {
                OptimizeBetterHitExperiance();
                FisrtConbo = false;
            }

            if (convert)
            {
                for (var i = 0; i < singleTuple.ListBaseHitObject.Count; i++)
                {
                    if (_lastHitObjectTuple.ListBaseHitObject.Count > i)
                    {
                        singleTuple.ListBaseHitObject[i].Shape = FindNext(_lastHitObjectTuple.ListBaseHitObject[i].Shape);
                    }
                }
                convert = false;
            }
            else
            {
                for (var i = 0; i < singleTuple.ListBaseHitObject.Count; i++)
                {
                    if (_lastHitObjectTuple.ListBaseHitObject.Count > i)
                    {
                        singleTuple.ListBaseHitObject[i].Shape = FindPrevious(_lastHitObjectTuple.ListBaseHitObject[i].Shape);
                    }
                }
                convert = true;
            }
        }
Ejemplo n.º 5
0
        public RpHitObject GenerateRpHitObject(SingleHitObjectConvertParameter singleHitObject, ConvertParameter single)
        {
            var rpHitObject = new RpHitObject(single.ContainerConvertParameter.ListObjectContainer[0].ListContainObject[0], singleHitObject.StartTime);

            //fake sample
            return(rpHitObject);
        }
Ejemplo n.º 6
0
 //指定Combo
 public void AssignComboTupleShapes(SingleHitObjectConvertParameter singleTuple, int index)
 {
     if (index != 0)
     {
         _processComboObject.Process(singleTuple, index);
     }
     else
     {
         AssignNormalTupleShapes(singleTuple);
     }
 }
Ejemplo n.º 7
0
        /// <summary>
        ///     計算隨機形狀
        /// </summary>
        /// <returns></returns>
        private RpBaseHitObjectType.Shape CalRandomShape(SingleHitObjectConvertParameter singleTuple, int index)
        {
            var randNum = CalRandNumber(singleTuple, index);

            switch (randNum % 4)
            {
            case 0:
                return(RpBaseHitObjectType.Shape.Up);

            case 1:
                return(RpBaseHitObjectType.Shape.Left);

            case 2:
                return(RpBaseHitObjectType.Shape.Down);

            case 3:
                return(RpBaseHitObjectType.Shape.Right);
            }
            return(RpBaseHitObjectType.Shape.Down);
        }
Ejemplo n.º 8
0
        /// <summary>
        ///     計算隨機形狀
        /// </summary>
        /// <returns></returns>
        private Direction CalRandomShape(SingleHitObjectConvertParameter singleTuple, int index)
        {
            var randNum = CalRandNumber(singleTuple, index);

            switch (randNum % 4)
            {
            case 0:
                return(Direction.Up);

            case 1:
                return(Direction.Left);

            case 2:
                return(Direction.Down);

            case 3:
                return(Direction.Right);
            }
            return(Direction.Down);
        }
Ejemplo n.º 9
0
        public RpHitObject GenerateRpHitObject(SingleHitObjectConvertParameter singleHitObject)
        {
            var rpHitObject = new RpHitObject();

            //fake sample
            rpHitObject.Samples.Clear();
            rpHitObject.Samples.Add(
                new SampleInfo
            {
                Bank = "whistle",
                Name = "soft"
            }
                );

            //fake position
            rpHitObject.Position = new Vector2(100, 100);

            rpHitObject.StartTime = singleHitObject.StartTime;
            return(rpHitObject);
        }
Ejemplo n.º 10
0
        public HitObjectConvertParameter Analyse(ConvertParameter single)
        {
            //打擊物件的參數
            var parameter = new HitObjectConvertParameter();

            for (var i = 0; i < single.ListRefrenceObject.Count; i++)
            {
                //單一參數
                var singleParameter = new SingleHitObjectConvertParameter();
                //有無combo
                singleParameter.IsCombo = AnaylseCombo.IsCombo(single, i);
                //出現物件數量
                singleParameter.MultiNumber = AnaylseMulti.GetMultiNumber(single, i);
                //開始時間
                singleParameter.StartTime = single.ListRefrenceObject[i].StartTime;
                //結束時間
                singleParameter.EndTime = single.ListRefrenceObject[i].StartTime;
                //增加物件
                parameter.ListSingleHitObjectConvertParameter.Add(singleParameter);
            }

            return(parameter);
        }
Ejemplo n.º 11
0
 /// <summary>
 ///     產生隨機參數
 ///     目前先保存下來
 /// </summary>
 /// <returns></returns>
 private int OLD_CalRandNumber(SingleHitObjectConvertParameter singleTuple)
 {
     return(singleTuple.MultiNumber + (int)singleTuple.StartTime + singleTuple.ListBaseHitObject.Count);
 }
Ejemplo n.º 12
0
 /// <summary>
 ///     處理單一個打擊物體
 /// </summary>
 private void processSingeNote(SingleHitObjectConvertParameter singleRpBaseHitObject)
 {
     //產生中間捕間的路徑
     singleRpBaseHitObject.ListBaseHitObject[0].Curve.AntoGenerateEndPosition(_direction);
 }
Ejemplo n.º 13
0
 /// <summary>
 ///     處理單一個打擊物體
 /// </summary>
 private void processSingeNote(SingleHitObjectConvertParameter singleRpBaseHitObject)
 {
     //產生中間捕間的路徑
     singleRpBaseHitObject.ListBaseHitObject[0].Curve.GenrtateMiddlePath();
 }
Ejemplo n.º 14
0
 //指定一般
 public void AssignNormalTupleShapes(SingleHitObjectConvertParameter singleTuple)
 {
     _processObjectTypeRandom.Process(singleTuple);
     _processComboObject.FisrtConbo = true;
 }