打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
慢教育Scratch教案 / 小猫跨栏

 


任务设置


按下空格键,小猫开始跑步,每按一次空格键,跑一步;按下上箭头,小猫竖直起跳,然后一个栏架一个栏架跨过去,最后计算跑100的时间。


要求:

1、小猫跑步过程,采用相对运动原理,小猫不动,栏架朝小猫运动;

2、小猫跳跃动作,需要符合物体自由落体规则;

3、如果小猫碰到栏架,栏架倒地,时间增加1秒。

 

背景和角色设计

 


背景绘制一个黑色的长方形作为跑道。


 

用默认的小猫作为游戏主角色

有两个造型可以切换

模拟跑步的小猫

 

 


绘制一个简单的长方形

作为栏架

有两个不同的造型

 

 

脚本分解

 

程序开始前,需要设置4个变量。

新建变量 按钮,出现这个对话框,在变量名文本框里填入对应的变量名称,点击确定,即可创建一个变量。这里我们选择全局变量选项,也就是适用于所有角色的变量。


 


 

下面分别讲解4个变量的作用。 


 


变量“距离”,记录小猫跑过的距离,程序运行过程中,距离会不断变化,程序的变量相当于一个容器,用来存放这个不断变化的数据,勾选变量前面的小方框,可在舞台上显示变量的数值。


变量“时间”,记录小猫跑了100步用的时间,也是游戏最终的成绩。


变量“Vy”,用来存放小猫跳跃速度,这个速度会随着高度变小,直到最高点0,然后反方向变大。


变量“t”,用来存放小猫起跳起来的时长,这个时长用于计算小猫竖直起跳的运动轨迹。

 

下面对小猫角色编写脚本。

 

 

同样的,点击绿旗,程序开始。

开始时,需要初始化变量值,将距离和时间清零。

设置小猫的位置。

  

测定跑100步所用的时间



 

用一个条件循环来计时:

当距离=100时,也就是小猫跑了100步,停止执行。

循环内,我们用“将时间变量增加0.1”,然后“等待0.1秒”,两个模块,完成计时功能;

下面还有一个条件语句,用来处理小猫跑步过程中碰到栏架的情况。

用“如果碰到……那么……”条件,

碰到栏架,将时间增加1秒。


 



循环执行完毕后,游戏结束,显示所用时间。

 

 如何让小猫跑起来?

 

我们用事件模块的“当按下空格键”控制小猫跑步。


 


 

按下空格键,将变量“距离”增加1,相当于小猫跑了1步。

在这个过程中,我们用改变小猫的造型,但是保持小猫坐标不变,让栏架向小猫运动,模拟小猫的相对运动的视觉效果。代码如下:


小猫角色的脚本,改变造型,增加变量“距离”的值。



 

栏架角色的脚本,按下空格键后,用移动(-20)模块,实现向左移动。




这里特别需要注意的是,我们用了下面三个模块的组合语句,实现“空格键没有按下前不执行后面的代码”这个逻辑,防止长按空格键,出现连续移动和连续计数。

 

 



栏架在向左移动的过程中,如果小猫碰到了栏架,那么,用另一个造型,栏架倒地。



 

 

如何让小猫跳起来?

 

这是这个游戏的难点,因为我们想让小猫的起跳符合物理运动规律,大家熟悉下物体竖直运动的公式:V=V0-gt


这里V是任意运动时刻的速度,V0是初始速度,g是重力加速度常数,我们这里用10,t是运动时间。


 


  

小猫起跳,代码是这样的:


当按下上移键,发出一个开始计时的广播;

设定小猫跳跃的初始速度为10;


计时模块如下:



 

根据小猫竖直运动的加速度公式,计算小猫的运动速度;

然后改变y坐标的距离,将速度转化为小猫跳起来的位置。


 



这里需要注意的时,当小猫跳到最高点后,会自由落下,我们需要判断小猫落到地面的情况,防止小猫一直下坠。

 

 

如果小猫碰到了地面(碰到黑色)并且上移键没有按下:

将小猫的竖直速度(Vy)设为0;

同时将小猫的y坐标设为初始值-100;

同时,发出结束计时的广播。


 



小猫脚本完成。

下面编写栏架的脚本。


栏架如何运动


按下空格键,小猫开始跑步,这个过程中,栏架不停向小猫方向移动,栏架移动到左边缘时,用克隆自己命令,重新生成一个新栏架。代码如下:

 


 

游戏开始时,初始化位置和形状。




碰到了左边缘?在右边初始位置克隆自己。

当每一个克隆体启动时,

都调用下面的代码。

 


 

 下面我们看下这个游戏运行的画面: 

 

-End-


听说爱编程的孩子都在这个群
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【新左栏模块】网上查询
【青少年编程】【三级】躲避恐龙
你常常在写的 if __name__ == ''__main__'' 到底是个啥?
挑战编程猫:精确控制克隆的数量,变量也可以计数
竖直上抛运动
【想·法】第二讲:重力、跳跃了解一下!🤣
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服