🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
我们都知道火是物质燃烧时伴随的现象,但你是否还想对火探个究竟,为什么气体燃烧的火焰是蓝色而木头是橘红色?为什么火焰总是晃动飘渺? ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181017211950.png) 化学能解释燃烧的实质,但放光放热却是物理现象。当物质充分燃烧时,比如煤气、火把或蜡烛火焰的底部,热量激发电子跃迁放出淡蓝色的光,也就是量子力学。当燃料不纯或是未能充分燃烧时,比如木头、煤炭或是蜡烛火焰的顶端仍然会有部分蓝火。但你看不到,因为烟把它遮住了。你只能看到红色火焰。 ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181017212057.png) 那为什么热的物体会发光?辐射告诉我们所有的物体在不同的温度下,会辐射不同频率的光。但你看不到你的小伙伴发光,是因为人体温度太低不能辐射可见光 ,我们辐射红外线。但岩浆、热铁块和煤烟,都有足够的温度放出橘红色的光。 ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181017212119.png) 火焰飘忽的原因是地球向下扯的重力。重力使得热空气上升,空气的对流造成了火焰的形状。如果你在零重力的环境中划亮一根火柴,火焰会是球形。没有重力的影响 火焰会向各个方向延伸。 ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181017212150.png) 了解了火焰形成的背景。我们就来用Scratch做一把火吧! 我们先来看一下游戏的整体效果: ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/什么是火.gif) ## 设置游戏角色 首先,我们新建一个Scratch项目,设置一个存黑色的背景。我们选择一个蜡烛作为燃烧物质。 ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181017212248.png) ## 制作火焰粒子 从前面的内容我们知道,火焰是由于燃烧物散发粒子形成的。因此,我们新增一个红色的粒子角色。然后,我们使用clone积木复制出很多个粒子。 ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181017212304.png) 在没有重力的影响下,粒子应该散播成一个圆形,因此,我们改变粒子的位置,让它位于一个圆形里。这里注意,我们使用了一个数学公式: ``` 圆点坐标:(x0,y0) 半径:r 角度:a0 则圆上任一点为:(x1,y1) x1 = x0 + r * cos(ao * 3.14 /180 ) y1 = y0 + r * sin(ao * 3.14 /180 ) ``` ## 火焰受重力影响飞起来 我们新增一个重力变量,值在0~9.8之间。粒子在初始化好后会根据重力的不同飞起来,从而形成火焰的效果。 ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181017212322.png) 完整的项目可以参照: https://kada.163.com/project/1304620-1382044.htm ## 蓝色火焰 火焰的颜色是燃烧物质的燃烧层度决定的。因此,我们再定义一个燃烧度变量,值在0~100之间。粒子的颜色会根据燃烧度变化。 我们的火焰就完成啦,火焰会根据重力和燃烧度发生变化,是不是很酷?科学很有趣,小朋友们想知道其他科学现象也可以跟阿达老师说哦! **阿达老师-孩子身边的编程专家** *完整课程请关注阿达老师,主页里有完整的课程目录和观看地址*