经典得分
在本章中,您将会学习到:
- 什么是基础得分倍率与连击得分倍率
- 如何设置得分倍率
- 如何设置首要指标 UI
基础得分倍率
每种判定类型都有它们自己的基础得分倍率,通常 Perfect
的得分倍率为 1
,而 Great
和 Good
则更低:
class Initialization: public Archetype {
// ...
SonolusApi preprocess() {
FUNCBEGIN
// ...
LevelScore.set(0, 1); // Perfect 倍率
LevelScore.set(1, 0.75); // Great 倍率
LevelScore.set(2, 0.5); // Good 倍率
// ...
return VOID;
}
// ...
};
连击得分倍率
连击得分倍率指的是当你获得了大于等于一定数量的目标判定后,其得分倍率会累积。
举例说明,我们设置了 Great
的连击得分倍率为每 10
次增加 0.01
,上限为 50
。这意味着每连续获得 10
个 Great
判定,其得分倍率增加 0.01
,最多增加 0.05
。
class Initialization: public Archetype {
// ...
SonolusApi preprocess() {
FUNCBEGIN
// ...
LevelScore.set(6, 0.01); // Great Multiplier
LevelScore.set(7, 10); // Great Step
LevelScore.set(8, 50); // Great Cap(Limit)
// ...
return VOID;
}
// ...
};
首要指标 UI
为了显示玩家选择的首要指标,Sonolus 提供了首要指标栏与首要指标值 UI,且通常首要指标均为经典得分。首要指标栏为一个能表现百分比的进度条,而首要指标值显示的是原始值。
我们建议将他们堆叠在一起以同时显示两种信息:
class Initialization: public Archetype {
// ...
SonolusApi preprocess() {
FUNCBEGIN
// ...
let primaryMetricBarX = stage.r - 0.05;
let primaryMetricBarY = stage.t - 0.05;
let primaryMetricBarWidth = 0.75 * ui.primaryMetricConfiguration.scale;
let primaryMetricBarHeight = 0.15 * ui.primaryMetricConfiguration.scale;
let primaryMetricValueX = stage.r - 0.05 - 0.035 * ui.primaryMetricConfiguration.scale;
let primaryMetricValueY = stage.t - 0.05 - 0.035 * ui.primaryMetricConfiguration.scale;
let primaryMetricValueWidth = 0 * ui.primaryMetricConfiguration.scale;
let primaryMetricValueHeight = 0.08 * ui.primaryMetricConfiguration.scale;
ui.primaryMetricBar.set(
primaryMetricBarX, primaryMetricBarY,
1, 1,
primaryMetricBarWidth, primaryMetricBarHeight,
0,
ui.primaryMetricConfiguration.alpha,
HorizontalAlign.Left,
true
);
ui.primaryMetricValue.set(
primaryMetricValueX, primaryMetricValueY,
1, 1,
primaryMetricValueWidth, primaryMetricValueHeight,
0,
ui.primaryMetricConfiguration.alpha,
HorizontalAlign.Right,
false
);
// ...
return VOID;
}
// ...
};