# 房间 完全掌握了节奏医生的节奏设计之后,我们要把目光放在谱面的视觉呈现上了,这一节我们就从理解“房间”的概念开始。 编辑器总共支持四个房间,你可以想象成一栋房子有四层楼,每层楼最多住四个人,同时,每层楼的装修可以随意摆设互不干扰。这四层楼不一定刚刚好叠在一起,可以随时移动,互不交叠,只是高度不同。我们飞在空中从上往下看,就能看到目视所及范围内的大楼景象。同时,如果空中飘扬着其他物件,也会被我们的眼睛捕捉到,如果大楼的天花板和地板是透明的,那么地基里有什么东西也会被看到。 当我们使用**排列显示房间**事件时,房间就只能从上到下地排列在屏幕上,而如果使用**移动房间**事件,则可以随便移动。 ## 排列显示房间 ![排列房间设置(左)与实际效果(右)](../images/room-visible.png) 将左边的可见房间点亮为黄色,屏幕上就会显示这个房间,高度可以自定义,填写数据后房间高度将自动分配。详细的分配规则点击下方箭头展开。如果你懒得理解分配规则,只需永远保证 **不点亮多余的房间,并且将存在的房间高度总和设置到100%** 即可。 ### 房间分配规则 - 如果全部不填,那么 所有房间高度为 `25%`; - 否则 - 计算已填房间高度的总和 `Sum` - 如果 `Sum = 100%`,那么 按实际数据设置房间高度,未填写的视为 `0%`; - 如果 `Sum < 100%`,那么 - 如果有未填写房间高度的房间,设个数为 `n`,那么 未填写高度的房间高度 `height = (100% - Sum) / n`,即均分未分配的房间高度; - 否则 每个房间的房间高度 `height = height * 100% / Sum`,即等比例拉伸房间高度至高度总和为 `100%`; - 如果 `Sum > 100%`,那么 每个房间的房间高度 `height = height * 100% / Sum`,即等比例缩小房间高度至高度总和为 `100%`; 下面还留有一个时长和缓速的选项,这个和轨道移动的时所介绍的设置规律是完全相同的。如果填写0拍就是瞬间完成房间分配。 > 如果你想直观地看看各种移动方式的速度区别,可以[看看这里](https://easings.net/zh-cn)。 ## 房间的前后关系 但实际上很多时候我们并不想就让房间这样死板地上下排布,甚至想让这些房间交叠在一起。要做到这一点,我们得先明确各个房间叠在一起的时候,它们的前后关系是怎样的。 ![](../images/room-animation.gif) 首先看一个房间内,各种事件的由前往后关系是: > [浮动文字] [弹幕效果] [前景图片] [轨道4] [轨道3] [轨道2] [轨道1] [背景图片(图片)] [背景图片(颜色)] 它们的前后顺序是不可改变的。 各个房间整体之间又有前后顺序,默认由前往后关系是: > [显示状态牌] [应用到:顶部] [房间1] [房间2] [房间3] [房间4] 四个房间的顺序是可以改变的,只需要在黄色版块内添加一个**重新排序房间**事件,把前后顺序拖动到想要的即可。 ![](../images/room-layer.png) ## 激活其他房间 在刚打开编辑器的状态下,实际上只能看到房间1。并不是另外三个房间不存在,而是房间大小被设置成了`0%`。在黄色版块中找到**移动房间**事件,事件放置在工作区的哪一行,就是对应的哪个房间被移动。创建三个移动房间事件置于234行,将“大小”设置为`(100%,100%)`,这样所有的房间都以屏幕大小叠在一起了。 还记得[这里](../pages/settheme.md)提到了**设置主题**事件吗,我们再添加一个“花房·昼”。由于黄色版块不再是空白的,设置主题的事件的右上角出现了新的按钮,这是将事件设置到具体房间的功能。 ![](../images/room-theme.png) 将带有花房·昼主题的事件选择房间4,预览效果会发现我们看到的依然是武士电子,因为现在不透明的房间1完全遮住了房间4。删掉武士电子主题,会发现背景全黑,依然看不到花房。这是因为默认状态下房间并不是透明背景,而是纯黑背景。 在紫色的版块找到**设置背景**事件,将背景颜色选择为纯透明,应用到123房间。再次预览,终于能看到房间4了。“应用到”选项是可以多选的。 ![](../images/room-eventselectroom.png) 有时还会有第五个按钮“顶部”,如果你理解了本节最开头的比喻的话,应用到顶部的事件是直接在大楼与你之间的空中生效的。房间怎么移动都不会影响到顶部。 ![](../images/room-eventsettings.png) 经此示例,相信你已经能理解房间的基本运作原理了。