Marble 的形式
| EN | CN | 
|---|---|
| Marble Race | 小球竞赛 / 球球比赛 | 
| Marble Elimination | 小球淘汰赛 | 
| Survival Proliferation | 生存繁殖赛 | 
| Territory War | 领土战争 | 
| Castle Destruction | 城堡破坏 / 城堡毁灭 | 
| Sea Battle / Ship Battle | 海战 / 战船较量 | 
| Escape from ( ) | 跑路比赛 / 从( )逃离 | 
Thyme 中的符号作用
| 符号 | 作用 | 
|---|---|
| + | 连字符 | 
postStep 和 update
postStep: 接下运行按钮后的每一帧都在执行,与拟真运行按钮的状态有关
 update: 程序启动后的每一帧都在执行,与拟真运行按钮无关
设置彩虹小球
postStep = (e) => {colorHSVA = [(system.time * 360) % 360, 1.0, 1.0, 1.0]}
设置黑白闪小球
postStep = (e) => {colorHSVA = [0.0, 0.0, math.sin(system.time * 5) * 0.5 + 0.5, 1.0]}
设置速有拖尾的小球
- 用圆形工具画一个直径 0.4m 的小球
- 右键 > Appearance > 取消 Draw Borders 和 Draw circle cake
- 右键 > Geometry actions > Attach tracer
- 右键 > Tracers > 设置 Fade time: 0.35s 和 Diameter:0.4m
设置圆环
初始装小球的圆形容器
 OnCollide = (e) => {e.other.pos = pos} 
 当两个物体(自己和其它)碰撞发生时,自己的位置赋值给其它物体的位置(改变其它物体的位置为自己的位置)
设置模糊红球
当球碰到红色条块的回家区失败时,被传送到模糊红球的重新开始位置
 update = (e) => {scene.my.p1 = pos}
 update 用于在每次场景更新时执行指定的操作。scene.my.p1其实就是模糊红球的中心,它是一个变量,scene是指当前场景,my是自定义属性的命名空间,p1是一个自定义位置的变量。这行代码的意思是在每次场景更新时,将pos的值赋给场景中的自定义p1。
设置模糊绿球
当球碰到绿色条块的过关区成功时,被传送到模糊绿球的过关等待区域
 update = (e) => {scene.my.p1f = pos}
 scene.my.p1f其实就是模糊绿球的中心。
设置旋转的转动矩形长条
- 用矩形工具画一个 8*1m 的矩形长条
- 右键长条 > Geometry actions > Add center axle
- 右键轴承 > Axles > 勾Motor > Motor torque: +infNm (如果要反着转勾Reverse)
- 右键轴承 > Appearance > 设置透明度A为0
定义一个晋级名额的变量
- 按 F10 打开控制台
- 输入 scene.my.spot1 = 17(这一关共有18个球,需要淘汰一个,所以晋级的球是17个)
- 按 Enter
- 按 Esc 退出控制台
设置红色条块的回家区
onCollide = (e) => {e.other.pos = scene.my.p1}
 碰撞到回家区的小球被传送到重新开始位置(模糊红球中心)
设置绿色条块的过关区
onCollide = (e) => {e.other.pos = scene.my.p1f; scene.my.spot1 = scene.my.spot1-1}
- 碰撞到过关区的小球被传送到等待开始的区域(模糊绿球中心);
- 每当一个球碰到绿色条块而过关,就将晋级名额减1
设置晋级名额
- 弄个框打上文字固定住在背景上
- update = (e) => {text = "" + scene.my.spot1}
设置圆环的快捷控制键
右键圆环 > Controller > Destroy key: 1 (按1键删除圆环)
设置让一些物体消失
当晋级名额为0时,让障碍物、红色回家区、和绿色过关区等消失
- 选中想要让消失的物件
- postStep = (e) => {scene.my.spot1<=0?{timetolive = 0}:{}}晋级名额是否小于或等于0,如果成立,物体存在的时间(timetolive)等于0;如果不成立,留空什么也不做{}