SUD+の計算方法の変更
Closed this issue · 0 comments
k0gane commented
現状
現在の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+で計算方法が異なり、違和感がある
beatmaniaとそろえるならば下はSUD+が500になるべきである。
SUD+の計算式を
従来...表示部分を1000分割
新規...全体を1000分割し、LIFTと合算して1000以下になるように縛りをつける
上記のように変更するほうが望ましい