菜单、第一关、Boss 战、结算——各是一个独立的世界,有自己的角色、脚本和变量。 想切就切,也可以让它们同时活着。
刚开始很好——三个角色,几段脚本,一切都在眼前。
第二关、第三关的角色并没有走,只是被藏起来了。角色列表越滚越长。
「我这一关该不该出现」——藏起来的每一个都得写一遍。退回上一关,还得把状态一个个复位。
既然它们本来就不属于同一个地方,那就别硬塞在一起。
每个场景是一整套:它自己的角色、自己的脚本、自己的变量。角色各回各家。
脚本、克隆体、声音一起停。所以你不用写复位代码——没有需要复位的东西留下。
横着的这条就是时间,亮起来的那一段表示这个场景活着。现在两边一样:第一关在跑。
看上面那条:第一关在分界线上断了。下面这条没有——「在后台运行」让它继续跑着。
两边画面最后都在第二关,可下面那个作品里,第一关一直没停过——它可以一边算着,前台先放过场动画。
普通的广播只在自己场景里响——这正是你要的,不然一个「开门」会把三关的门全打开。
「向场景 X 广播」只送给那一个;「向所有场景广播」谁都收得到。那边用普通的「当接收到」接住就行。
送给休眠场景的广播不会丢,排在那儿,等它下次开始时一起送到。
一个场景就是一个小作品,可以整个导出成 sb3 文件带走。别人拿到就能导进自己的作品里,也能直接丢进 Scratch 打开。
场景积木一共这么多。最常用的七块直接铺在积木栏最上面,其余分五组默认折起,需要哪一组点开哪一组。
跨场景角色只有一份。位置、造型、它自己的变量切场景时不会被重置——因为它压根没被重建。同名角色也不打架:后台场景问「Player 的 x 坐标」,读到的是它自己那个。
拆开之后,一些原本很别扭的事情变得理所当然。
「进第几关」不用再靠全局变量传。写在切换那块积木上,那边的 hat 用具名椭圆接住,椭圆拖出来就是值。
把角色标成跨场景,它就一路跟着走。可以是所有场景,也可以只勾其中几个。
「仅本场景」是真的私有:切到别的场景,那个变量根本不存在——不是变成 0。
内容退回一份快照,纹理和解码后的音频全部放掉,要用时再装回来。存盘一个字节都不会丢。
下面这三十九块就是全部,真实渲染——和编辑器里是同一套。
所以它可以整个导出成 .sb3。做好的一关能给别人;别人做的一关也能拿进来, 当成新场景,或者直接顶掉现在这一关。
一开始只用最上面那七块积木就够了。
代码里切场景不会打断你——你正在编辑的那个场景不会被拽走,作品在跑也照样改积木。