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.4
m 的小球 - 右键 > Appearance > 取消 Draw Borders 和 Draw circle cake
- 右键 > Geometry actions > Attach tracer
- 右键 > Tracers > 设置 Fade time:
0.35
s 和 Diameter:0.4
m
设置圆环
初始装小球的圆形容器
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:
+inf
Nm (如果要反着转勾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;如果不成立,留空什么也不做{}