第12届蓝桥杯Scratch某省赛真题中级组编程题。题目要求考生编程实现一个有趣的投篮游戏。按下空格键力量槽红色逐渐增加,当力量槽到达预计位置时松开空格键,篮球按照抛物线轨迹投出,篮球落入篮筐分数加 1 力量槽变空,掉落在舞台边缘的篮球重新回到准备区。
本游戏创作与上述题目契合度非常高,希望大家通过这个游戏的制作了解到简单的抛物线实现方法,及常见游戏中力量槽(蓄能)的应用。
什么是抛物线运动呢?先来看一下这张图:
从数学的角度讲,抛物线通常使用一个函数来表示,只要知道角色的x坐标,就可以通过函数计算出y坐标的值。但是在Scratch编程中,我们有更简单的解决方案,就是将抛物线运动进行分解,分为水平和垂直两个方向上的运动,其中水平方向上做直线运动,而垂直方向先上升直到最高点然后下落。
实现步骤:
第一步:添加素材
打开scratch,删除默认角色,从角色中找到“篮球”,在背景中选择“Basketball 1”,球员角色是我从网上下载的一张图片素材,有需要的可以从网站下载本程序源码获取(仅供个人学习使用)。然后将角色调整到合适大小,放置在如图所示位置:
第二步:添加变量
新建两个变量“得分”,“力量”,“垂直速度”(不在舞台上显示),将变量“力量”设置为滑杆模式,并改变滑杆范围(0-50)
第三步:为球员添加代码
1、初始化,设置初始位置及角色大小
2、判断空格建是否按下,如果按下,力量值增加,实现能量槽增加的效果,如图:
当力量值达到上限,重置为0,重新蓄力。力量值的大小将直接影响抛球的远近高低,所以会将“垂直速度”的值设置为力量值乘以0.8(为什么是0.8?简单说就是控制抛球轨迹更合理,你可以在完成所有程序后自己随意改动这个数据,观察效果)代码如下:
3、当松开空格键,就需要进行投篮,并将力量值重置为0,为下次蓄力做准备。
第四步:实现投篮
1、切换到篮球角色,角色进行初始化
2、当接收到投篮消息,通过控制角色x,y坐标的变化,实现投篮(抛物线),改变"垂直速度"的值,先上升直到最高点然后下落,这是关键。
3、篮球落地,投篮结束(使用颜色侦测)
4、计算得分,绘制一个新角色"标记",用画笔画一个原点即可,并把它放到篮筐上沿中心位置
5、切换到篮球角色,判断篮球是否碰到角色“标记”,碰到,得分增加1(添加一个等待时间,避免出现多次加分的情况)
本游戏主要向大家介绍如何实现一些常见的跳跃,投掷类功能的简单实现,也可以用来应对一些编程考试的题目,也欢迎大家在这个基础上进行升级改造。
效果演示与源码下载:Scratch投篮游戏
本站内容未经许可,禁止任何网站及个人进行转载。







