Scratch: 太阳系 II

网友投稿 2019-11-23 13:57

这是「天叔奇谈」的第 057 篇文章,今天周三(2019/11/13),主题 scratch,我们今天继续完善上周的太阳系。

课堂回顾

我们先回顾了一下上次做的内容:地球绕太阳转,月球绕地球转。我本来打算在白板上画一个太阳系讲解,结果小宝说她来画 — 她比我考虑的周到,还整了小行星带:

https://cdn.china-scratch.com/timg/191125/135G33112-0.jpg

上次的代码做得比较糙,我们今天主要想做以下修改:

  • 重复的代码使用 my block 封装。my block 是 scratch 类似自定义函数的功能,之前我们简单使用过,这次想通过做九大行星的公转深入教一下;

  • 之前的变量定义有一些变量如 ex/ey,mx/my 意义不大,可以删除;

  • 公转轨道需要改成椭圆的。

我给小宝又重温了一下 Make a block 的内容:

https://cdn.china-scratch.com/timg/191125/135G3Oa-1.jpg

随后发现了一个问题:block 只能在当前 sprite 使用,没法跨 sprite。我简单查了一下 scratch 的文档,真的是此路不通。囧。学艺不精,让娃笑话了。

原计划的九大行星泡汤了,那就加一个行星吧 — 小宝说要 Jupiter。我们 google 了 junpiter 找了个透明背景的 png,就用上了。小宝照着之前的公式把 Jupiter 折腾利索后,我教她把代码化简,删除了没有必要的变量。之后,我们又探索了一下如何把圆变成椭圆 — 我教她把 y 轴压缩成原来的 2/3。

做完之后,小宝不满意这个「游戏」没有互动,就想加一个宇航员,我给她 google 了一个卖相不错的。她把宇航员加入到 sprite 里后,设置了用键盘可以控制宇航员的移动。后来觉得这样互动还是很枯燥,问我能不能让宇航员一开始被地球吸引着运动,如果在地球和太阳内部,就跟着地球运动,如果从地球往外跑,就脱离地球的引力?我教她用不等式 x^2+(3y/2)^2<="" p="">

https://cdn.china-scratch.com/timg/191125/135G4O04-2.jpg

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com