SCRATCH 三国小游戏

第4集 吕布射画戟

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

游戏介绍:

群雄消灭董卓后,天下大乱。各地豪强纷纷自立门户,中原陷入混战。刘备在混乱中占据了小沛城,并和吕布讲和。但袁术忌恨刘备,派大将纪灵攻打刘备。

吕布有意保护刘备,他将刘备和纪灵叫到自己的营中,说:“我吕布不爱看别人争斗,你们看远处竖着一支画戟,如果我能射中戟上的红缨,那就是老天爷让你们不要打了,如射不中,你们再决一死战,好不好?”

在我们的游戏中,点绿旗子之后画戟会左右摆动,这是怎么回事?像很多低级的电子游戏一样,它是作为力度指示计,当画戟向右偏转的角度最大时,按下空格键射箭的力度也最大。看看你能不能射中红缨,让纪灵和刘备停战吧。

代码量:20 块积木

素材

吕布:lvbu

造型1 - lvbu.png

造型2 - lvbu2.png

画戟:LvWeapon

造型1 - LvWeapon.png

红缨:Scarf

Scratch 内置角色 Scarf,造型切换为 b, 大小设为 30

:Wand

Scratch 内置角色 Wand

舞台背景

Scratch 内置背景 Greek Theater

素材来源:吕布造型改编自Scratch内置角色Batter. 为了热闹,玩家还可以添加一些没有代码的观众角色。

代码

lvbu:

LvWeapon:

Wand:


其中 “(LvWeapon▼)的[方向▼]” 积木是由侦测组里 “(舞台▼)的[背景编号▼]” 积木改变来的。

讲解

这集我们用了很少的几块积木,让射出的箭实现了抛物线运动。其中用到了一个小把戏,就是把箭(Wand)的方向当成了代表它垂直速度的变量。在Wand角色“重复执行(40)次”的代码块中,每一次循环都会执行三个操作:

将x坐标增加(10)” —— 让箭往右水平移动,水平速度恒定为每次10步。

将 y坐标增加(方向)” —— 让箭垂直移动,每次移动步数等于当时方向的数值,是递变的。

左转(1)度” —— 让“方向”也就是垂直速度逐渐减少,甚至由正变负,箭只也就会由向上升变为向下落。

把上述每次循环的细微变化连贯起来,就呈现了抛物线的运动。它符合物理学中的运动定律,因此,程序运行效果也看上去像真实的射箭一样。

下一集 煮酒论英雄

上一集