Scratch: 太阳系 II
这是「天叔奇谈」的第 057 篇文章,今天周三(2019/11/13),主题 scratch,我们今天继续完善上周的太阳系。
课堂回顾
我们先回顾了一下上次做的内容:地球绕太阳转,月球绕地球转。我本来打算在白板上画一个太阳系讲解,结果小宝说她来画 — 她比我考虑的周到,还整了小行星带:
上次的代码做得比较糙,我们今天主要想做以下修改:
-
重复的代码使用 my block 封装。my block 是 scratch 类似自定义函数的功能,之前我们简单使用过,这次想通过做九大行星的公转深入教一下;
-
之前的变量定义有一些变量如 ex/ey,mx/my 意义不大,可以删除;
-
公转轨道需要改成椭圆的。
我给小宝又重温了一下 Make a block 的内容:
随后发现了一个问题:block 只能在当前 sprite 使用,没法跨 sprite。我简单查了一下 scratch 的文档,真的是此路不通。囧。学艺不精,让娃笑话了。
原计划的九大行星泡汤了,那就加一个行星吧 — 小宝说要 Jupiter。我们 google 了 junpiter 找了个透明背景的 png,就用上了。小宝照着之前的公式把 Jupiter 折腾利索后,我教她把代码化简,删除了没有必要的变量。之后,我们又探索了一下如何把圆变成椭圆 — 我教她把 y 轴压缩成原来的 2/3。
做完之后,小宝不满意这个「游戏」没有互动,就想加一个宇航员,我给她 google 了一个卖相不错的。她把宇航员加入到 sprite 里后,设置了用键盘可以控制宇航员的移动。后来觉得这样互动还是很枯燥,问我能不能让宇航员一开始被地球吸引着运动,如果在地球和太阳内部,就跟着地球运动,如果从地球往外跑,就脱离地球的引力?我教她用不等式 x^2+(3y/2)^2<="" p="">
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com