一周一次的Scratch时间又到啦!
这次教程和下一次教程中,我会分享如何教女儿制作一个闯迷宫的游戏。游戏的重要看点是:如何利用变量记录角色的坐标和闯迷宫所花的时间(这一小时),二是如何利用云数据在线记录游戏玩家的最短游戏时间和如何设计多个关卡(下一小时)。
怎么样?是不是感觉越来越好玩了呢?快带孩子一起实践一下吧!
不说了,我先带女儿玩一把过过瘾,这次照例是视频教学,先上效果图。
0. 卖萌时间
视频接通了,那头传来敲键盘的声音。
我有点奇怪,“女儿在看电视剧吗?”
她反驳我,“我在玩Scratch啊,今天不是要教我制作闯迷宫游戏吗?”
“这么好学!是想当学霸吗?哈哈”我调侃她。
“哈哈,那就叫我学霸吧,简称霸霸!快叫霸霸!”她一脸坏笑。
“好的!乖女儿!”我占她便宜,然后装不懂,“不叫!”
1. 选择迷宫图
好啦,正式开始。
我先给她介绍,“今天我教你做一个闯迷宫游戏,游戏很简单,就是利用键盘的方向键做导向,控制主角移动闯出迷宫!”
她的表情很配合,“嗯嗯,好好玩的样子!”
“所以现在先找一个迷宫图,搬到舞台上。”
女儿在网上找了这张:
2. 缩小角色
她把电脑屏幕给我看,“效果是这样的,小猫咪显得好大。”
“那你就把小猫咪变小吧,小到可以塞进去那个门。”
3. 设置起点和终点
“为了让小猫咪区别门和墙壁,我们把出发的门涂成黄色,把终点的门涂成红色。”
4. 利用键盘方向键控制小猫咪移动
“现在我们把小猫咪移到黄色区域,然后你就写控制小猫咪移动的代码吧,相信你会的!”
她回答我,“会!那个so easy!”然后把代码给我看:
5. 利用变量记录小猫咪坐标
我接着启发她,“如果小猫咪碰到黑色的围墙,该如何阻止它越过去呢?”
她想了一会儿,告诉我方案,“可以新建两个变量,一个记录小猫咪的X坐标,另一个记录小猫咪的Y坐标,如果碰到黑色围墙,就让小猫咪回到之前的位置。”她给我看代码:
我觉得这个方案很不错,“很对,你太聪明了!”
6. 判断角色是否到终点
然后我接着引导她,“现在小猫咪可以移动而且不会穿过墙壁,那该如何让电脑判断小猫咪到了终点并且结束游戏呢?”
女儿的回答是,“可以设置一个条件,比如,如果小猫咪碰到红色,就说明它到了终点了。再比如,如果小猫咪到了右上角,它的X坐标和Y坐标都会大于某一个值,那么只用判断之前设置的两个变量是否大于某个数,也可以判断小猫咪是否到了终点。”
“很不错,把代码写了给我看。”
“好嘞!”她鼓捣了一会儿,给我看代码:
我惊讶了,想不到女儿这么聪明,看来编程真的很能开发智力啊!
我接着问她,“为什么要写广播游戏结束并等待呢?”
她说,“因为游戏结束了,我想让舞台变个造型,比如打上成功的标语!这多有仪式感!”
我夸她,“哎呦,不错哦!你继续尝试,有问题找我。”
过了一会儿,她开始给我介绍代码,“你看,我先增加了一个舞台造型。”
她接着给我说她的步骤,“然后, 当角色广播游戏结束的消息,我让舞台接收消息,并变成带成功标语的舞台,然后结束游戏。舞台的代码是这样写的:”
“舞台的变化效果是这样的:”
然后她给我展示了一遍游戏过程:
7. 利用变量计算游戏时间
我接着启发她,“该如何记录小猫咪所花的时间呢?”
她立刻回答,“用变量!哈哈!看我的!”然后给我看她的新变量。
然后她开始自言自语,“时间变量本身不能记录时间,上帝啊,赐给我一个记录时间的指令吧。”
她找了一会儿,跟我说,“哈哈,找到啦!要记录时间,可以用‘侦测’按钮里的‘计时器’指令。”
然后给我看她写的记录时间的代码:
这是效果图,为了更加好看,女儿把时间放在了舞台右侧的空白区域。
8. 全部代码和游戏过程
这是全部代码:
以下就是游戏过程啦!
9. 成就感时间到!
“成功啦!”女儿高兴地大呼小叫。
我趁机占她便宜,“哈哈,乖女儿真厉害!爸爸像你这么大,还在玩泥巴呢。”
尽管被我占了便宜,女儿还是那么高兴。
这是项目地址:
https://scratch.mit.edu/projects/116980954/
下一小时,我会教女儿以下两点:
1. 如何利用云数据在线记录游戏玩家的最短游戏时间
2. 如何设计多个游戏关卡,其实就是多张迷宫图。(囧)