scratch物理创意编程:用碰撞知识来做scratch编程冰壶游戏

  

  01

  —

  已实现功能

  

  一个比赛需要有竞技性,对抗性,我们继续来完善的作品。

  02

  —

  物理知识

  思考:碰撞是自然界当中常见的现象,你能列举出哪些碰撞现象吗?

  

  03

  —

  弹性碰撞

  在理想的情况下,物体之间发生碰撞后,形变能够恢复,过程中没有发声、发热、没有动能损失,这种碰撞叫作弹性碰撞。弹性正碰是指碰撞前后的运动方向始终在一条直线上。

  

  假设小球A、B的质量为m1、m2,碰撞前小球A的速度为v1,小球B的速度为0。当小球A撞上小球B时,发生弹性碰撞。假设碰撞后小球A、B的速度为V1`、V2`。根据动量守恒定律和能量守恒定律可得出如下等式。

  

  从方程(1)(2)可以解出两个物体碰撞后的速度分别为:

  

  04

  —

  程序展示

  

  03

  —

  程序思路

  1、当冰壶-蓝色投掷出之后,冰壶-红色再投掷出去。

  2、冰壶-红色在投掷出去的移动过程中,如果碰到了冰壶-蓝色就进行碰撞后的移动。

  3、判断两个冰壶与红圈中心位置的距离,如果哪个冰壶离红圈中心位置近谁获胜。

  

  程序变量注释

  变量名称

  作用

  红壶速度

  用于控制红壶移动的速度

  红壶质量

  利用动量和能量守恒定律计算碰撞后的速度。

  蓝壶速度

  用于控制蓝壶移动的速度

  蓝壶速度2

  用于控制两壶碰撞后,蓝壶移动的速度。

  蓝壶质量

  利用动量和能量守恒定律计算碰撞后的速度。

  碰撞状态

  用于判断两壶是否发生碰撞(控制整个过程只发生一次碰撞)

  红色到中心距离

  蓝色到中心距离

  一、新增雪容融和冰壶-红色角色

  1、雪容融角色和和冰壶-红色角色与冰墩墩角色的程序思路是一样的,但是要将之前的前进速度改成红壶速度和蓝壶速度,两者不能共用。

  2、当蓝壶停下时,需要广播消息“玩家2开始”,当红壶接收到“玩家2开始”,冰墩墩需要隐藏,雪容融和红壶显示。

  二、碰撞程序

  1、因为蓝壶是先投掷出去,所以碰撞程序需要在红壶角色中编写。在红壶的移动过程当中,如果碰撞状态=0并且碰到蓝壶,那么将碰撞状态设为1同时计算碰撞后的速度。(为什么要设置碰撞状态呢?是因为两壶可能发生多次碰撞,发生多次碰撞只当作一次碰撞,只计算第一次碰撞后的速度)

  2、“计算碰撞后的速度”自制积木参数如下:

  

  3、“计算碰撞后的速度”程序思路,其实就是利用动量守恒定律和能量守恒定律求得的碰撞后的速度。v1`为红壶碰撞后的速度,v2`为蓝壶碰撞后的速度。

  

  三、蓝壶被碰撞后的移动

  1、蓝壶被碰撞后的移动,只需要在蓝壶角色当中再增加一个判断,判断“碰撞状态=1”时就移动“蓝壶速度2”步,其余程序与蓝壶之前的移动程序一样。

  四、结果的判断

  1、如何判断结果,首先要判断什么情况下游戏才结束。游戏结束情况(1)如果两个冰壶没有碰撞,红壶停止时是游戏结束的,广播“游戏结束”;游戏结束情况(2)如果两个冰壶发生了碰撞,当蓝壶碰撞后移动停止时才是游戏结束,广播“游戏结束”。

  2、红壶结束判断:如果蓝壶速度2<1与碰撞状态=1,那么等待5秒后广播“比赛结束”(这是发生碰撞的情况下)。如果红壶速度<1与碰撞状态=0,那么等待5秒后广播“比赛结束”(这是没发生碰撞的情况下)。

  五、两壶距离的判断

  1、需要实现的功能是判断两壶的距离哪个离中心更近,如果哪个近则让相应的造型显示并切换。

  2、”红色到中心距离“与”蓝色到中心距离“都是设为175-两壶的x坐标。

  3、如何切换造型,自行思考。

  vx搜索少儿编程吕口口,关注之后回复“碰撞”获取源码,素材,教案。

  04

  —

  scratch算法练习集免费领取(含程序)

  

  获取方法:vx关注scratch-coco,回复“算法”获取。

  04

  —

  scratch素材--软件集成版

  给孩子找素材是一件麻烦的事情,找的图片还有可能给孩子扣好背景,或者扣成孩子想要的样子。即使去淘宝买的素材,也要从百度网盘,但素材太多大了或者太多文件,也要充值百度网盘超级会员才能保存,提高下载速度

  。即使下载了,也要上传,不是特别方便,尤其是不好查找。

  口口老师深知各位家长的痛点,将常用素材集成在软件角色和背景库当中,无需上传,只需要角色/背景库中查找。更有每月更新版,让孩子专注于编程,发挥创意即可。

  关注即可领取,下载限速,方便快捷。

  举报/反馈