龙空技术网

Scratch | 模拟抛物线运动——物理(附源码素材下载)

扣叮李 297

前言:

当前小伙伴们对“抛物线算法”可能比较关怀,同学们都想要知道一些“抛物线算法”的相关内容。那么小编也在网摘上搜集了一些有关“抛物线算法””的相关文章,希望咱们能喜欢,姐妹们快快来学习一下吧!

今天我们来做一个模拟抛物线运动的Scratch程序,这个程序主要应用到初中的物理和数学知识,虽然这个小程序非常简单,但是在很多游戏中都能用到今天我们要讲解的知识。比如打鸭子、切水果游戏中鸭子和水果都是从屏幕底端跳出后做一个抛物线运动,而在这个过程中如果打到鸭子或者切到水果则得分。相信很多小朋友的家长或者小朋友都玩过这类游戏,下面让我们来动手来实现这个游戏的核心环节,角色从屏幕底端跳起做抛物线运动的效果吧

程序分析

在现实生活中,我们抛一个水果在刚抛起的时候水果的速度最快,在上升的过程中速度逐渐减小,到达顶端的时候速度最慢,而在下落的过程中速度逐渐增大,到达底端的时候速度又达到最大。如果已经学过初中物理,就知道这是一个典型的抛物线现象。

我们今天的主要任务就是实现一个抛物线运动,也就是说上面游戏的核心部分,之后我们会逐渐完善,编写现出一个完整的切水果和打鸭子游戏。首先来看一下程序运行的效果,当鼠标移动时,箭头跟着移动,点击鼠标时小球抛起。

程序设计流程

1.通过一个箭头控制小球弹出的方向,使箭头跟随鼠标移动

2.让小球跟着箭头的方向抛起

3.模拟小球抛起后只在重力作用下的运动轨迹

箭头角色代码

角色箭头代码很简单,第1段当旗帜被点击的时候重复执行,不断的获取箭头方向,赋值给变量箭头方向;第2段重复执行,使箭头跟随鼠标指针的方向。

小球角色代码

小球代码也不复杂,共分为两段:第1段当旗帜被点击的时候做了一个循环,在循环体内一直监控,如果鼠标被摁下,那么清除所有的痕迹,然后发出一条广播;实现小球模拟抛物线效果的主要算法逻辑在第2段代码里,当接收到广播消息的时候,进行初始化设置(小球移动到箭头所在的位置,随机设置抛球速度,模拟重力设置为0,小球的朝向为箭头所指方向,分别求解小球在x方向及y方向上的速度),接下来设置一个循环,如果没有碰到舞台边缘,那么就执行里边循环体的操作:由于是模拟抛物线运动,所以在x轴方向上的速度是不变的,而在y轴方向上的速度是逐渐减小的(注意这里所说的速度是矢量)。这段代码如果学过初中物理知识其实是很简单的,如果你没有学过,那就问问你的爸爸妈妈,让他们给你好好讲一讲吧。

好啦,这就是一个完整的和你抛物线轨迹的一个小程序,你可以多复制几个小球,或者把小球换成鸭子,做一个打鸭子的小游戏吧。

公众号内回复14回复获取所有源码

标签: #抛物线算法