SCRATCH 三国小游戏

第8集 草船借箭

作者:杨振鹏   日期:2020/6/7

游戏介绍:

周瑜想试试诸葛亮的本事,于是命令他3天内造好10万只箭。诸葛亮想到一条妙计,他和鲁肃驾驶着“草船”驶向江对岸的曹营,企图引诱曹军将箭只射到草船上。不过这个故事有一个 bug,万一曹军射来的是火箭岂不糟糕。

在这集游戏里,“草船”会紧跟着玩家的鼠标上下移动,玩家要让“草船”躲避带火的箭只(否则中箭后船将变小,代表战斗减员…),并尽可能多地接收不带火的普通箭只。最后看看能否“借”到10万只箭。

代码量:29 块积木

素材

:Wand

造型1 - wand
Scratch 内置的 Wand

造型2 - wand2
在左侧造型浏览栏里,在唯一的 wand 造型上点右键、“复制”,之后将产生一个复制出来的“造型2”。之后,在编辑器中,自行画上火焰,如下图。并将造型名称设定为“wand2”。

草船:Sailboat

Scratch 内置的 Sailboat

舞台背景

Scratch 内置的 City With Water —— 抱歉这个背景里还有摩天大厦。

代码

Sailboat:

wand:

讲解

这里又用到一个新功能 —— 克隆。就是产生一个角色的副本,让副本独立执行一些额外的任务。

点击绿旗子之后,箭的主程序将重复克隆自己,产生60个克隆副本。而这些箭飞行的代码在以“当作为克隆体启动时”开头的子模块中。

普通箭、火箭,是同一个角色的两种不同造型。因此,要想判断射中船的是普通箭还是火箭,我们需要知道当前造型的名称(或编号);在这里,我们用了“广播(造型[名称])”的方法。对于普通箭射中小船的情况,会广播一个叫“wand”的消息;对于火箭射中小船的情况,会广播一个叫“wand2”的消息。在小船的代码中,有不同的消息侦听程序处理这两种事件。

下一集 大火烧赤壁

上一集