SCRATCH 三国小游戏

第12集 荆州大决战

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

游戏介绍:

公元219年,曹操、刘备、孙权已形成三足鼎立之势。刘备占据了荆州、西川、汉中,又让关羽从荆州北上襄樊攻打曹操。曹操派于禁救援受围困的襄樊。孙权则想趁机派吕蒙偷袭夺取荆州。一场殊死决战即将在荆襄之地展开。

在本集游戏中,玩家控制关羽与曹操、于禁、吕蒙混战。所有角色都在屏幕上飘移。任何人被别人的武器刺中后,都会缩小,当大小低于30时,则该角色阵亡(消失)。玩家用“↑”、“↓”键控制关羽的前进方向,其他角色则由计算机随机控制方向。玩家要让关羽生存到最后,可以先尽量躲开战斗,等其他角色自相残杀,最后坐收渔翁之利。如果关羽不幸阵亡,则发出“难道这就是麦城”的感叹,结束游戏。

代码量:31 块积木

素材

武将:Generals

造型1 - Generals.png

造型2 - cao.png

造型3 - lvmeng.png

造型4 - yujin.png

舞台背景

Scratch 内置背景 Woods。

素材来源:关羽造型改编自 Scratch 内置角色 Outfielder,吕蒙改编自 Casey,于禁改编自 Ben;曹操:杨青禾改编. 三国演义(晚安经典). 长春:吉林出版社集团有限责任公司, 2012: p16

代码

Generals:


“碰到颜色()”积木里,要吸取武器的统一黄色:颜色13、饱和度100、亮度100

讲解

这集游戏虽然有多名武将混战,但我们只在Scratch中只添加了1个角色——Generals。我们是利用该角色的不同造型,来显示不同的武将人物。这样,可以避免为每个武将都编写相同的代码,大大缩短了代码量。

当游戏中需要让所有武将同时出现时,我们用了“克隆自己”的方法,创建出3个克隆体,并在每次克隆后变换一个造型,再算上角色本体,也就是产生出4个不同的武将。

事实上,你可以无限添加参加混战的武将。只要武将手里有一些黄颜色(颜色13、饱和度100、亮度100)的东西,就具备杀伤力。除了关羽之外,你添加了几个武将,就把主程序里的“重复执行(3)次”改成几次即可。

由于角色本体(关羽)和克隆体(曹操、吕梦、于禁)都需要相同的作战程序,为了避免把相同的代码写2遍,我们定义了一个自制积木“作战”,在角色本体和克隆体的程序中,都调用这个自制积木执行作战逻辑。

另外,我们通过侦测是否碰到黄色,来检查武将是否被武器刺中。这个办法也减少了程序的长度。

 

好了,小朋友们,我们这个三国系列的Scratch小游戏就告一段落了。希望小朋友们喜欢我们的故事和游戏,也希望你们了解了一些计算机编程的基本概念。

至于后续的三国故事,建议你们读一读三国演义吧。其实荆州决战之后,才是历史上三国时期的真正开始。公元220年,关羽败走麦城被杀,吕蒙、黄忠在荆州之战后染上瘟疫病故,曹操也在那年去世。儿子曹丕继位后,逼迫汉献帝退位,建立了400多年的汉朝就这样结束了。

上一集