儿子迷上《鱼吃鱼》,我想带他用 Scratch 做一个

最近我家老大迷上了《鱼吃鱼》,总惦记着玩。

他11岁左右,平时就比较调皮,精力旺盛。我担心他玩得太多,直接禁止了,结果他还是偷偷玩。

后来我也反思了一下,光禁止好像没什么用。那还能怎么办?

他之前学过一点 Scratch,条件、循环、积分这些大概知道怎么用,但用得不熟,也几乎没完整做过一个项目。我就想,既然他这么喜欢这个游戏,能不能带他自己做个简单版?

不过,“做一个鱼吃鱼”这句话说起来简单,真打开 Scratch,估计还是不知道从哪里开始。我自己写程序也这样,想的时候都挺容易。

所以得先拆小。

我是程序员,自然会想到敏捷开发。但没必要给他讲这些词,就每次做一点,做完能运行、能看到变化,再往下加。每版尽量只用少量新积木,别一下把他弄懵了。

我准备按下面这个顺序来。

0.1:先让一条鱼动起来

找个海底背景,放一条鱼,用上下左右键控制。点绿旗,鱼回到中间。

就这些。先不管吃鱼,也不管积分,按键能动就算这一版做完。

0.2:有鱼可以吃了

再加一条小鱼,让它自己游,碰到边缘就反弹。玩家碰到它,分数加1,小鱼换个位置继续出现。

这一版用上“分数”变量。他以前接触过,但这次得自己把移动、碰撞、加分连起来。

先放一条小鱼就行,满屏都是鱼的效果以后再弄。

0.3:吃了会变大

在吃到小鱼的时候,给玩家鱼增加一点大小。重新开始,恢复原来的大小。

这一版内容很少,我也想单独留一版。加几块积木就能看到鱼变大,应该挺有意思。

0.4:加一条不能碰的大鱼

前面一直吃,也没什么难度。这次放一条大鱼,碰到就扣生命,受伤后回到中间。

这里可能会卡一下:两条鱼碰在一起,生命一下就扣光了。真遇到了,就陪他看看到底是哪里一直在重复扣,再加个受伤后等待的处理。

0.5:有输有赢

最后加上结束条件:吃到15分算赢,生命扣完算输,然后停止游戏。

到这里就先收工。鱼种、技能、关卡那些都先放着,后面他还想做,再挑一个加。

整个安排里,我最想试的是把每次要做的事情缩小。他经验少,要是一坐下来就有十几个功能等着做,我估计很快就不想弄了。最好是这次只管让鱼动,下次只管吃到鱼能加分。

目前还只是我的打算,他愿不愿意做、遇到问题会不会嫌麻烦,还不知道。

先带他试一下0.1版,看看能不能把鱼弄动。