屏幕
在本章中,您将会学习到:
- 面板设置
- 屏幕坐标系设置
- 画布设置
面板(Panels)
在 VSRG (Vertical Scroll Rhythm Games,纵向滚动节奏游戏) 中,预览模式通常会渲染从左到右水平排列的多个垂直面板。
让我们设置面板的一些参数,我们假设每个面板宽度为 7
个单位 (3
个单位的轨道大小与两边大小为 2
个单位的填充),展示两秒的游玩过程。随后,我们将根据关卡中的音符计算正确的面板数量,但就目前让我们假设只有 10
个面板。
#ifdef preview
class Panel {
public:
let w = 7;
let h = 2;
let count = 10;
}panel;
#endif
屏幕坐标系
与引擎游玩模式类似,我们直接使用默认坐标系即可。
为了让渲染计算更简单,让我们认为 1/20
的屏幕高度为 X 方向的单位长度,以及一秒的游玩过程为 Y 方向的单位长度。
画布
对于画布,我们让它可以从左向右滚动,其滚动方向的大小会由面板数量计算得来。
class Initialization: public Archetype {
// ...
SonolusApi preprocess() {
FUNCBEGIN
canvas.set(Scroll.LeftToRight, panel.count * panel.w * screen.h / 20);
return VOID;
}
};