SCRATCH 三国小游戏

第12集 荆州大决战

作者:杨振鹏   日期:2020/9/11 更新

SCRATCH 三国小游戏 荆州大决战

游戏介绍:

公元219年,曹操、刘备、孙权已形成三足鼎立之势。刘备占据了荆州、西川、汉中,其中荆州由关羽负责守卫。但关羽认为曹操防守襄樊的兵力太弱,可以被轻易打败,于是率领一支部队北上。孙权得知关羽离开,趁机派吕蒙偷袭。一场殊死决战即将在荆襄之地展开。

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

代码量:30 块积木

素材

众武将:All-star

Scratch Game 众武将

下载以上角色

舞台背景

Scratch 内置背景 Woods。

列表:words

Scratch Game 荆州决战 格言

1: Is this place Mai City? 难道这就是麦城?
2: Dr Hua, save me please! 华佗大夫,快救救我!
3: Xiao Qiao, you’re going to go on! 小乔,你再找个好人嫁了吧!
4: I’m old enough. It doesn’t matter. 我老了,我所谓了。。

代码

All-star:

Scratch Game Three Kingdoms - All-star Fight - Code
“碰到颜色()”积木里,要吸取武器的统一黄色:颜色13、饱和度100、亮度100

讲解

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

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

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

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

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

 

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

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

上一集