exch-bms2/beatoraja

SUD+の計算方法の変更

Closed this issue · 0 comments

現状

現在のbeatorajaのSUD+の計算式は表示部分(全体からLIFTを除いた部分)を1000分割して表示するようになっている。

		final double hu = lanes[0].region.y + lanes[0].region.height;
		final double hl = playconfig.isEnablelift() ? lanes[0].region.y + lanes[0].region.height * playconfig.getLift() : lanes[0].region.y;
		final double rxhs = (hu - hl) * hispeed;
		double y = hl;

		final float lanecover = playconfig.isEnablelanecover() ? playconfig.getLanecover() : 0;
		currentduration = (int) Math.round(region * (1 - lanecover));
		
		main.main.getOffset(OFFSET_LIFT).y = (float) (hl - lanes[0].region.y);
		main.main.getOffset(OFFSET_LANECOVER).y = (float) ((hl - hu) * lanecover);
		// TODO HIDDENとLIFT混在の必要性とHIDDENの必要性
		final SkinOffset hidden = main.main.getOffset(OFFSET_HIDDEN_COVER);
		if (playconfig.isEnablehidden()) {
			hidden.a = 0;
			if (playconfig.isEnablelift()) {
				hidden.y =  (1 - playconfig.getLift()) * playconfig.getHidden()
						* skin.getLaneRegion()[0].height;
			} else {
				hidden.y = playconfig.getHidden() * skin.getLaneRegion()[0].height;
			}
		} else {
			hidden.a = -255;
		}

ただ、この方法だとLIFTとSUD+で計算方法が異なり、違和感がある

  • LIFT...0 SUD+...1000
    20240329_114854_LR2oraja_Play_E★ 0 00 僕たちの旅とエピローグ。

  • LIFT...500 SUD+...1000
    20240329_114912_LR2oraja_Play_E★ 0 00 僕たちの旅とエピローグ。

beatmaniaとそろえるならば下はSUD+が500になるべきである。

SUD+の計算式を

従来...表示部分を1000分割
新規...全体を1000分割し、LIFTと合算して1000以下になるように縛りをつける

上記のように変更するほうが望ましい