五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

冰與火之舞(adofai)判定公式

2022-06-05 11:36 作者:QuitSense  | 我要投稿

公式

提前 = ((打擊角度 - 參考角度) * ±1(是否旋轉(zhuǎn)) * 180.0 / π) ≤ -(Max(60.0, Max(默認難度初始判定區(qū)間/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm))


太快 = -(Max(60.0, Max(默認難度初始判定區(qū)間/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm)) < ((打擊角度 - 參考角度) * ±1(是否旋轉(zhuǎn)) * 180.0 / π) ≤ -(Max(45.0, Max(0.03/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm))


稍快 = -(Max(45.0, Max(0.03f/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm)) < ((打擊角度 - 參考角度) * ±1(是否旋轉(zhuǎn)) * 180.0 / π) ≤ -(Max(30.0, Max(0.02/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm))


完美 = -(Max(30.0, Max(0.02f/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm)) < ((打擊角度 - 參考角度) * ±1(是否旋轉(zhuǎn)) * 180.0 / π) ≤ (Max(30.0, Max(0.02/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm))


稍慢 = (Max(30.0, Max(0.02f/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm)) < ((打擊角度 - 參考角度) * ±1(是否旋轉(zhuǎn)) * 180.0 / π) ≤ (Max(45.0, Max(0.03/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm))


太慢 = (Max(45.0, Max(0.03f/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm)) < ((打擊角度 - 參考角度) * ±1(是否旋轉(zhuǎn)) * 180.0 / π) ≤ (Max(60.0, Max(默認難度初始判定區(qū)間/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm))


失敗 = ((打擊角度 - 參考角度) * ±1(是否旋轉(zhuǎn)) * 180.0 / π) > (Max(60.0, Max(默認難度初始判定區(qū)間/飚速模式倍數(shù), 0.025) * 音高 * 180 / 60.0 * bpm))?

解釋:

打擊角度-參考角度:玩家操作的球和目標磚塊之間的角度差(弧度制)

±1(是否旋轉(zhuǎn)):如果這個磚塊有旋轉(zhuǎn)事件則*-1,否則*1

* 180.0 / π:把弧度制轉(zhuǎn)為角度制

Max(a,b):取a,b中較大的一個

默認難度初始判定區(qū)間:寬判:0.091;標判:0.065;嚴判:0.04

飚速模式倍數(shù):默認為1.0,如2.8倍此值就是2.8

/?60.0 * bpm:把beats/min(每分鐘節(jié)拍數(shù))轉(zhuǎn)為beats/sec(每秒鐘節(jié)拍數(shù))
音高默認=1

上述的bpm為等效bpm,也就是當前磚塊bpm*飆速倍數(shù)

相關源代碼(注釋為自己寫的)

public static HitMargin GetHitMargin(float hitangle, float refangle, bool isCW, float bpmTimesSpeed, float conductorPitch)
	{
		float num = (hitangle - refangle) * (float)(isCW ? 1 : -1);
		HitMargin result = HitMargin.TooEarly;
		float num2 = num;
		num2 = 57.29578f * num2;
		double adjustedAngleBoundaryInDeg = scrMisc.GetAdjustedAngleBoundaryInDeg(HitMarginGeneral.Counted, (double)bpmTimesSpeed, (double)conductorPitch);
		double adjustedAngleBoundaryInDeg2 = scrMisc.GetAdjustedAngleBoundaryInDeg(HitMarginGeneral.Perfect, (double)bpmTimesSpeed, (double)conductorPitch);
		double adjustedAngleBoundaryInDeg3 = scrMisc.GetAdjustedAngleBoundaryInDeg(HitMarginGeneral.Pure, (double)bpmTimesSpeed, (double)conductorPitch);
 ? ? ? ?/*
 ? ? ? ?adjustedAngleBoundaryInDeg = Math.Max(60.0, Mathf.Max(默認難度初始判定區(qū)間/飚速模式倍數(shù), 0.025f) * 音高 * π / 60.0 * bpm);
 ? ? ? ?adjustedAngleBoundaryInDeg2 = Math.Max(45.0, Mathf.Max(0.03f/飚速模式倍數(shù), 0.025f) * 音高 * π / 60.0 * bpm);
 ? ? ? ?adjustedAngleBoundaryInDeg3 = Math.Max(30.0, Mathf.Max(0.02f/飚速模式倍數(shù), 0.025f) * 音高 * π / 60.0 * bpm);
 ? ? ? ?*/
		if ((double)num2 > -adjustedAngleBoundaryInDeg)
		{
			result = HitMargin.VeryEarly;
		}
		if ((double)num2 > -adjustedAngleBoundaryInDeg2)
		{
			result = HitMargin.EarlyPerfect;
		}
		if ((double)num2 > -adjustedAngleBoundaryInDeg3)
		{
			result = HitMargin.Perfect;
		}
		if ((double)num2 > adjustedAngleBoundaryInDeg3)
		{
			result = HitMargin.LatePerfect;
		}
		if ((double)num2 > adjustedAngleBoundaryInDeg2)
		{
			result = HitMargin.VeryLate;
		}
		if ((double)num2 > adjustedAngleBoundaryInDeg)
		{
			result = HitMargin.TooLate;
		}
		return result;
	}





public static double GetAdjustedAngleBoundaryInDeg(HitMarginGeneral marginType, double bpmTimesSpeed, double conductorPitch)
	{
		float num = 0.065f;
		if (GCS.difficulty == Difficulty.Lenient)
		{
			num = 0.091f;
		}
		if (GCS.difficulty == Difficulty.Normal)
		{
			num = 0.065f;
		}
		if (GCS.difficulty == Difficulty.Strict)
		{
			num = 0.04f;
		}
		bool isMobile = ADOBase.isMobile;
		num = (isMobile ? 0.09f : (num / GCS.currentSpeedTrial));
		float num2 = isMobile ? 0.07f : (0.03f / GCS.currentSpeedTrial);
		float a = isMobile ? 0.05f : (0.02f / GCS.currentSpeedTrial);
 ? ? ? ?//num(最寬松,可能為太快太慢)=默認難度初始判定區(qū)間/GCS.currentSpeedTrial
 ? ? ? ?//num2(可能為稍快稍慢)=0.03f/GCS.currentSpeedTrial
 ? ? ? ?//a(可能為完美)=0.02f/GCS.currentSpeedTrial
 ? ? ? ?//currentSpeedTrial應該是飚速模式

		num = Mathf.Max(num, 0.025f);
 ? ? ? ?//避免過低bpm導致反向高bpm補償
		num2 = Mathf.Max(num2, 0.025f);
 ? ? ? ?//避免過低bpm導致反向高bpm補償
		double num3 = (double)Mathf.Max(a, 0.025f);
 ? ? ? ?//避免過低bpm導致反向高bpm補償

 ? ? ? ?/*
		num = Mathf.Max(默認難度初始判定區(qū)間/GCS.currentSpeedTrial, 0.025f);
		num2 = Mathf.Max(0.03f/GCS.currentSpeedTrial, 0.025f);
		num3 = Mathf.Max(0.02f/GCS.currentSpeedTrial, 0.025f);
 ? ? ? ?float double 亂用是吧
 ? ? ? ?*/

		double val = scrMisc.TimeToAngleInRad((double)num, bpmTimesSpeed, conductorPitch, false) * 57.295780181884766;//180/π=57.29
		double val2 = scrMisc.TimeToAngleInRad((double)num2, bpmTimesSpeed, conductorPitch, false) * 57.295780181884766;
		double val3 = scrMisc.TimeToAngleInRad(num3, bpmTimesSpeed, conductorPitch, false) * 57.295780181884766;
 ? ? ? ?/*
 ? ? ? ?val=Mathf.Max(默認難度初始判定區(qū)間/GCS.currentSpeedTrial, 0.025f) * conductorPitch * π / 60.0 * bpmTimesSpeed
 ? ? ? ?val2=Mathf.Max(0.03f/GCS.currentSpeedTrial, 0.025f) * conductorPitch * π / 60.0 * bpmTimesSpeed
 ? ? ? ?val3=Mathf.Max(0.02f/GCS.currentSpeedTrial, 0.025f) * conductorPitch * π / 60.0 * bpmTimesSpeed

 ? ? ? ?*/
		double result = Math.Max((double)GCS.HITMARGIN_COUNTED, val);
 ? ? ? ?//GCS.HITMARGIN_COUNTED被賦值的三個函數(shù)最終都未被使用,因此取初始值60f
		double result2 = Math.Max(45.0, val2);
		double result3 = Math.Max(30.0, val3);
 ? ? ? ?/*
 ? ? ? ?result = Math.Max(60.0, Mathf.Max(默認難度初始判定區(qū)間/飚速模式倍數(shù), 0.025f) * 音高 * π / 60.0 * bpm);
 ? ? ? ?result2 = Math.Max(45.0, Mathf.Max(0.03f/飚速模式倍數(shù), 0.025f) * 音高 * π / 60.0 * bpm);
 ? ? ? ?result3 = Math.Max(30.0, Mathf.Max(0.02f/飚速模式倍數(shù), 0.025f) * 音高 * π / 60.0 * bpm);
 ? ? ? ?這123的 起變量名不要num1 val2 result3!!血壓已經(jīng)起來了
 ? ? ? ?*/
		if (marginType == HitMarginGeneral.Counted)
		{
			return result;
		}
		if (marginType == HitMarginGeneral.Perfect)
		{
			return result2;
		}
		if (marginType == HitMarginGeneral.Pure)
		{
			return result3;
		}
		return result;
	}

	public static double TimeToAngleInRad(double timeinAbsoluteSpace, double bpmTimesSpeed, double conductorPitch, bool shrinkMarginsForHigherPitch = false)
	{
		double num;
		/*if (shrinkMarginsForHigherPitch)
		{
			num = timeinAbsoluteSpace;
		}
		else
		{*/
			num = timeinAbsoluteSpace * conductorPitch;
		//}
		return num * 3.1415927410125732 / scrMisc.bpm2crotchet(bpmTimesSpeed);
 ? ? ? ?//num = timeinAbsoluteSpace * conductorPitch * π / 60.0 * bpmTimesSpeed
	}

	public static double bpm2crotchet(double bpm)
	{
		return 60.0 / bpm;
	}




冰與火之舞(adofai)判定公式的評論 (共 條)

分享到微博請遵守國家法律
平南县| 武宁县| 尖扎县| 郯城县| 响水县| 仲巴县| 康保县| 宁津县| 井冈山市| 顺义区| 云南省| 庄河市| 黔江区| 绿春县| 出国| 紫云| 成武县| 灵寿县| 台江县| 鄂伦春自治旗| 清涧县| 青龙| 通渭县| 永州市| 郸城县| 青冈县| 达拉特旗| 鄂托克旗| 鄯善县| 马公市| 潼南县| 仁布县| 福鼎市| 神池县| 绥德县| 房山区| 余干县| 遂昌县| 新疆| 广安市| 新建县|