type
status
date
slug
summary
tags
category
icon
password
一个泡泡的生成方式
玩法:
- 移动鼠标在鼠标的位置生成一个大小不同的肥皂泡泡
- 从鼠标的位置飘向并碰到右侧舞台边缘后重新回到鼠标位置
步骤
- 设置旋转方式为不可旋转,这样做的原因就可以让泡泡的造型在下面要调整飞行方式的同时外形保持统一
- 也许反向表达更容易一些比如,如果不加这个泡泡改变飞行方向的时候造型也会跟着旋转,这会让泡泡显得更奇怪
- 添加一个移动到鼠标指针,这样在鼠标的位置就是泡泡出生点
- 我们看到积木上”移到鼠标指针”这句话的时候感觉很奇怪,但也说不上来,其实者来自我们的灵性直觉,啊呸,来自我们的语言习惯,这其实是一个病句因为好像没有主语,其实是有主语的,需要把舞台下方的角色名字放到主语的位置上,再念一遍就连贯了,比如这个角色名字是”泡泡”,那么这个积木完整的名字是,把”泡泡移到鼠标指针”,将”泡泡,面向90(度)方向”
- 也就是我们在哪个角色里写代码我们就认为那个积木的名字为主语,也就是你编程的对象,把主语放入积木的名字中念一遍就不会感觉很奇怪了
- 面向一个随机方向,数值是 60 ~ 120,这样泡泡生成之后的方向是随机的更加自然
- 发现没有我们添加这些代码的目的就是让泡泡更加自然,说的更直白一些就是”模拟物理世界”的运动规律
- 将大小设置为一个15~60的随机值
- 添加一个重复执行直到碰到舞台边缘的积木,实际上这个积木一碰到舞台边缘就相当于这一次执行已经结束了
- 这个重复执行直到积木和重复执行积木
- 相同点都是可以重复执行他们范围内的积木
- 如果重复执行直到积木不添加条件(积木洞里不放侦测积木),它的功能和重复执行是一样的
- 不同的地方是
- 重复执行只能一直重复范围内的积木
- 而重复执行直到,有一个停止条件,当这个条件满足了就能停下来
- 为了让泡泡不停的产生我们可以在外面使用一个重复执行让整个动作做完之后在
- 整个动作包括移动鼠标位置重新获取方向,和大小

bug:
- 如果鼠标太过靠近屏幕边缘的时候会出现不停地闪现泡泡,那是因为气泡一生成就碰到了左边或上边的屏幕边缘,屏幕边缘其实是四个边而不是只要屏幕的右边或下边是(这好像是一个思维定式)
例子:
预览:

多个泡泡的生成方式
- 我们需要产生多个泡泡的方式最常用的方式可以使用克隆
- 可以将 [重复执行直到] 代码替换成 [克隆自己]
- 添加一个 [当作为克隆体启动时] 将上面替换掉的 将重复执行直到以及里面的代码放到其下面
- 泡泡停留在舞台上太多了,添加删除克隆体在 [重复直到] 下面
- 有本体留在舞台上,添加本体隐藏和克隆体显示,来处理一下

使用麦克风吹泡泡
例子:
- 我们可以使用一个开关来控制是否来产生泡泡,这个开关可以使键盘上的空格键,也可以是鼠标的移动,甚至是麦克风话筒的音量,也就是积木上的 [响度]
- 使用一个[判断]作为开关,判断条件就是[响度]
- 当响度的大小大于10的时候打开开关进入到克隆自己的流程中
- 添加一个变量名字为速度,我们可以使用这个速度来控制每个泡泡飘落的速度不一样
- 为了让每个泡泡的速度不一样我们需要把变量设置成私有变量
- 为了区别我们设置一个公有的变量,[速度公]和一个私有变量[速度私]
- 这样我们就能看到区别了,一个是一批泡泡拥有同一个变量,而另一个是每个泡泡都有自己的速度
- 让泡泡飞行的过程中慢慢减速可以使用一个公式,让速度增加一个固定值- 速度*因数 比如
- 速度增加 2- 速度 * 0.2


问题:
- 程序中的速度变量能不能换成公有变量?
- 你还能想出那种控制吹出泡泡的方法?
- 你能说出重复执行和重复直到有哪些共同点和区别吗?
- 能分别举出一个例子说明一下怎么用吗?
扩展
- 我们还记得螺旋生成器吗?
- 可以做一个物理的泡泡机吗?使用microbit或者esp32开发板做一个试试?
- 可以使用麦克风或者按钮吹出泡泡吗?