Scratch游戏——足球赛
2020-10-09
1. 足球赛基本规则转化
足球比赛有一整套复杂的规则,Scratch游戏中只能提取最核心且易于实现的规则。首先将双方队员从11人简化为各一人,可以用该角色改变足球运动方向。若球出界,则由对方发界外球,为了避免出现平局的情况,先得3分一方获胜(图1)。
2. 素材准备
本项目需要一个足球赛场背景,我们搜索图片或用绘制画出球场。球员选择素材库中的不同颜色小球(Ball),足球用沙滩球(Beachball)代替。
球场包含边界、赛场、中线、中心圆、禁区、球门等,示例如图2。
绘制一个球门大小的矩形作为进球检测标记,由于它运行时会隐身,所以颜色可以随意选取。点击矩形会出现右边的中点,尽量将其对准造型中心,完成左边球门的绘制。
右边球门可以直接复制角色,为了保持对称将左边的中心对准造型中心点。因为预备在下方放置计分变量,所以足球场整体需要上移一定距离,两个球门坐标左右对称,我们这里将其分别设为(-207,20)与(207,20),具体坐标取决于背景球门位置,应在球门线外(如图3)。
3. 游戏环节设计
足球角色程序最复杂,我们以足球角色为主,将游戏分为三个环节,首先依然是各项参数设定,包括双方得分和控球标记(用于判断谁的界外球)。
然后是开球阶段,球选好方向后开始运动,运动过程中可以被两个球员角色改变运动方向,若碰到边线则进入罚界外球阶段。
罚界外球可以由玩家用鼠标选择罚球方向。
若碰到球门,则计分并重新开球。一方得分为3时,游戏结束。
4. 球门标记与球员运动
足球碰到球门或边线会进入相应判定,所以我们需要对球门与边线进行标记。边线外场颜色与内场草地颜色不同,可以选取颜色标记,具体程序在足球运动中给出。
球门用方块角色标记,为了美观将其虚像都设为100,可使其隐身且能被触碰(图4)。
球员需要被玩家控制,且能影响足球方向,为了将需求方向传递给足球,我们需要给球员一个明确方向,这里我们使用两套按键控制方向改变,并在碰到足球时,将方向传递给足球。
第一个球员,我们使用“WASD”控制方向。第二个球员使用“上下左右”控制方向(图5)。
5. 开球方向选择与出界判定
开球方向我们使用随机数决定,足球开局会移到足球场中心向对方半场方向移动,并标记开球方触碰足球(图6)。
足球运动过程中,每次移动1步,若碰到球员,则发出声音改变方向为球员运动方向,并标记碰到球员代号。若碰到场外颜色,则广播出界,并后退1步离开边线,停止当前足球运动脚本(图7)。
6. 发界外球设定
出界后,若标记球员为1,则声明2号球员开球,反之则声明1号球员开球。
开球后,标记更新为开球方代号。
为了方便玩家自由选择方向,我们这里使用鼠标开界外球。点击鼠标后,球即面向鼠标方向,回到“足球运动”阶段(图8)。
7. 游戏胜利
任意一方进球后,停止足球运动,改变双方比分,重新开球。进球在程序中可以用碰到球门表示。若一方有3分,则获得胜利,游戏结束(图9)。
8. 调试与总结
最后加上初始的参数设定。全部完成后,开始运行调试,并可适当优化位置选择(图10)。
將两个分数变量显示并放在舞台下方(图11)。
本项目通过拆解现实活动中的规则与规律,选择适合改编的部分规则并将其用编程语言表达出来。锻炼使用侦测指令、用广播控制进入不同的游戏阶段的能力。是提高Scratch综合应用能力的好实例。
9. 项目升级
真实的足球比赛实际上是有时间限制的,到时间后根据比分判断输赢,那么我们可不可以设定游戏为2分钟,时间到后根据双方比分判断输赢呢?
本实例摘自电脑报出版的《Scratch3 .9青少年编程高分宝典》因篇幅限制有较大删改,如果您想系统学习Scratch,夯实编程基础,还是需要买一本系统全面的教材。
蓝桥杯大赛高分教材
“蓝桥杯全国软件专业人才设计与创业大赛”是由我国工业和信息化部人才交流中心举办,是当前行业内备受认可的IT类科技竞赛。在目前高校全面取消自主招生的大背景下,新的“强基计划”为高校招生提出了发挥本校特长“聚焦培养高端芯片与软件、智能科技、新材料、先进制造和国家安全等国家人才紧缺的人文社会科学领域的人才”的要求。这其中不少方向与编程息息相关,考生如果在蓝桥杯上取得优异成绩必将在高校招生中占得先机。
《Scratch3.9青少年编程高分宝典》专为编程等级考试和蓝桥杯大赛量身定做知识体系和真题题库。