程序员也可以是好爸爸|仅20分钟用Scratch陪伴孩子

2019-10-11 12:12
北京

《流浪地球》中,地球濒临毁灭,生死只在一线之间,点燃木星的计划成为了最后的希望。而影片中的父子亲情线成为了一条主要的泪点线索。

爸爸去了太空后再也没有陪我赛车了……

亲情与生死之间,儿子怨恨父亲的无情,而儿子一开始却未能理解父亲承受的生活重担。这在我们日常的生活也存在着许多类似的现象。

对于我们职场人士来说,加班开会熬夜免不了,尤其是一些高负荷高强度的工作。例如程序员,为了家庭生计,几乎一个礼拜回不了几次家,经常不分昼夜地奋战在办公室。陪伴少了,隔阂就多了,亲子之间关系就冷淡了。

难道只能如此,没有办法吗?非也。

2016 年 4 月 12 日,一位叫做瑞恩·格林的程序员爸爸,他为患癌症的儿子乔伊开发了一款永远也赢不了的游戏,即便工作繁忙,也保证每周陪伴孩子,为他带来了欢乐。

陪伴是一件很认真的事情。作为一个程序员,在职场中每天最擅长的莫过于解决产品经理的需求。但是对于他们中的大多数来说,带孩子是十分尴尬的,因为孩子经常无法根据自己想要什么而提出需求,而一旦没有需求,程序员就无法下手。

然而,你如果就此批评程序员在育儿方面的天生不称职,那你可就大错特错了。生活中有千种,每个人都在尽全力承担着自己肩上的担子,程序员也能够成为优秀的家长,他们用独一无二的方式爱着自己的孩子。

今天,职场君就为大家介绍一下,程序员仔爸如何利用Scratch项目为孩子制作出一个《流浪地球》的游戏脚本——

项目概览

本项目主要通过收集各类资源增加地球的燃料,从而加大推动力摆脱太阳的引力。玩家可以操控主护卫飞机把来袭的陨石击碎,从而收集能源。紧急情况下还可以发射救援火箭去外太空收集能源。此外,几架小护卫机始终伴随着地球移动。作品效果如下所示。

作品效果

本项目需要一张太空背景图,另外角色较多,包括太阳、地球、飞机、陨石、救援火箭以及两个行星。此外,还包括飞机的子弹,以及地球的动力推进系统。

项目制作

第一步、新建项目并导入背景。

首先,启动Scratch创建一个新项目,并将项目保存为流浪星球.sb3。

其次,导入背景。为了衬托本主题,从背景库导入名为Stars的背景图片。

接着,导入太阳和行星角色。

随书提供了太阳和行星的图片,其中太阳和地球是Gif动态图片,角色导入后,会包含多个造型,如下图所示.

地球造型

下面是太阳造型——

太阳造型

第二步、编写太阳与其他行星的脚本。

1.编写太阳及一些行星的脚本

我们将太阳放在舞台左上角,并且只露出半个,以示其巨大。并且太阳在程序运行时是不断在旋转的。另外几个行星起到点缀作用,无需编写脚本。

太阳脚本

2.编写地球脚本

地球一边自转,一边被慢慢吸向太阳。当地球离太阳越近,地球颜色越红,反之颜色越白。在有能量燃料的情况下,通过键盘上的数字键1~5可以启动动力推进系统,5级最高推力 , 消 耗 的 燃 料也最多。当地球燃料消耗完了,游戏也结束了。

设置量值1

 

设置量值2

 

地球脚本

3.编写动力推进系统角色及脚本

地球要逃离太阳系,靠的是动力推进系统。推进需要消耗燃料,按照推进的级别,呈现一定的造型。这个推进系统还要始终与地球角色连在一起。因此我们编写如下脚本。

动力推进系统脚本

4.救援火箭角色及其脚本

本项目设计的救援火箭相当于一个游戏中的彩蛋。当地球燃料不够充足的时候,可以消耗一点燃料发射救援火箭,然后根据随机概率来获得一些燃料,有可能一点燃料也没有。

救援火箭脚本

温馨提示:宇宙速度

我们可以了解一下三种宇宙速度。

第一宇宙速度是7.9km/s,叫环绕速度,是人造卫星围绕地球表面做圆周运动时的速度。

第二宇宙速度是11.2km/s,叫脱离速度,是航天器脱离地球引力场所需的最低速度。

第三宇宙速度是16.7km/s,叫逃逸速度,是航天器脱离太阳引力场所需的最低速度。

5.编写小型护卫飞机

地球流浪过程中,会有几架小型护卫飞机一直跟随着地球移动。这些小型护卫飞机的活动范围不会离地球很远,并且会在这个范围内随机地移动。

小型护卫飞机脚本

6.主护卫飞机及子弹

上面的小型护卫飞机是无法操控的,而主护卫飞机可以通过键盘操控,同时可以通过按键发射导弹击毁陨石(流浪途中的阻碍),从而获得燃料。

首先、主护卫飞机脚本。

主护卫飞机脚本

其次,导弹脚本。 玩家可以通过按键使主护卫飞机发射导弹,其实导弹和飞机是两个不同的角色。

导弹脚本

7.陨石

地球到达目的地之前会遇到许多困难阻碍,其中天上不时飞来的陨石就是其中之一。陨石在随机的时间内出现,从舞台上方往下飞行。如果陨石撞到地球,那么地球就损失一定的燃料,如果陨石被主护卫机击毁,那么地球就会获得一定的燃料。使用造型编辑器手工绘制陨石,可以在矢量模式下绘制一个圆或正方形1,然后使用变形工具2将图形进行随意地变化3,再填充渐变色4,如下图所示。

绘制陨石

请注意,陨石是由克隆产生,每个陨石克隆体的生命值是不同的,因此在创建陨石生命这个变量时选择仅适用于当前角色选项。我们为陨石编写如下脚本。

陨石脚本

通过以上脚本的编写,我们不难发现,在制作游戏时,会用到许多随机数,以增加游戏的不确定性,从而增加趣味性。

这样,我们就为孩子编写好了一个“流浪星球”的游戏脚本,在这个过程中既满足了孩子娱乐的需求,也帮助孩子学习到很多关于宇宙天文的科普知识,激发了孩子们的想象力和创新力,所谓“寓教于乐”,就是在这样高趣味性的氛围中实现的,其实亲子之间的快乐,有时很简单!

想要进一步培养孩子的创新思维和创造能力?

快来跟仔爸学Scratch项目制作吧——

《PK人工智能:AI时代孩子怎能不会编程思维》

本书以全新的Scratch3.0为环境进行写作,精心编写了35个实战项目案例,内容涉及2个动画作品、4个艺术作品、3个数字故事、4个交互式作品、8个数学问题、5个游戏作品、9个人工智能作品。通过这些生动有趣的实例,引导孩子以编程的形式表达创意。

    特别声明
    本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问https://renzheng.thepaper.cn。