国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現(xiàn)在的位置是:首頁 » scratch編程資訊

資訊內(nèi)容

用Scratch制作煙花

極客小將2020-11-25-
授權轉(zhuǎn)載?|?千里馬快樂編程?qianlima_biancheng 原文作者 | CG 原文標題 |?用Scratch制作煙花 標簽:難度中級;動畫;變量

授權轉(zhuǎn)載?|?千里馬快樂編程?qianlima_biancheng

原文作者 | CG

原文標題 |?用Scratch制作煙花

標簽:難度中級;動畫;變量;隨機數(shù);克隆;軌跡;畫筆;煙花;


今天我們來介紹一些煙花的知識,并用Scratch編程制作煙花動畫。先來看看動畫效果吧:

上面的煙花動畫其實是由四種不同類型的煙花特效組成的。它們可是全部都是通過畫筆實時計算出來的喲。

1.?????知識點

本文介紹的煙花制作方法使用了下面的知識點:

1.1?重力加速度(拋物線)

煙花是是由火藥和金屬粉末組成的,五彩繽紛的顏色其實是燃燒時不同的金屬離子(如鎂、鋁等)與氧分子發(fā)生化學反應而發(fā)出的獨特顏色。所以煙花是有重量的。有重量的物體在大氣中運動都會受到地球引力的作用,呈現(xiàn)出拋物線軌跡。所以要制作好煙花效果首先要知道如何通過編程描述拋物線。簡單來說就是:

  • 垂直方向下落速度會越來越快(有一個面向地心的固定的加速度)

  • 水平方向速度不變

關于拋物線運動的更多知識可參考千里馬的這篇文章:從"憤怒的小鳥"學習用編程展示物理規(guī)律

1.2?漸隱效果(彗星效果)

?

這是做煙花軌跡的一個竅門和重點。我們希望看到的煙花線條軌跡是頭部較亮,尾部較暗,呈漸隱效果,如下圖:

?upload/article/images/2020-11-25/51012adddd63ef57ce78b31223f18eb1.jpg

這種效果的實現(xiàn)方法是:

-?????? 制作一個和屏幕一樣大的全黑角色:

upload/article/images/2020-11-25/ea5f59dbdede8051bd3341a822de1d1c.jpg

-?????? 把該角色的虛像效果設成90(就是說它的透明度變成10%)

-?????? 然后不停地使用圖章讓它覆蓋屏幕:

upload/article/images/2020-11-25/792a080b6f5ff5da27610844a4876dfb.jpg

這種實現(xiàn)方法的原理如下圖所示:

upload/article/images/2020-11-25/60672377ef83e740cc8dc94c0ba20af2.jpg

  • 畫筆畫出來的軌跡實際上是由一系列點組成的。如果畫筆是從左向右運動的,則左邊的點比右邊的點先在舞臺上出現(xiàn)。上圖五個橙色方格代表了畫筆的軌跡點,1最先出現(xiàn),5最晚出現(xiàn)。

  • 上面程序里虛像效果90的黑色角色相當于上圖中標記為A的黑色方塊。兩個A疊起來就形成B的效果(B比A稍微黑一點),三個A疊起來就形成C,四個A疊起來就形成全黑的D。這個疊起來的動作就相當于程序里的“圖章”。

  • 把橙色方格和黑色方塊疊起來就是最終效果。沒有被黑色方塊蓋住的5號方格就是原來的顏色,4-3-2-1依次變暗,1或者更早之前出現(xiàn)的方格就完全看不到了。

動圖效果如下:?

https://cdn.china-scratch.com/timg/191107/1405394317-4.gif

1.3?3D效果

?

有立體感的3D煙花更加好看,制作3D效果需要了解一定的3D知識。基本的3D知識請參考千里馬這一篇文章:用Scratch做一個3D引擎

當然3D制作有點小復雜,也并不是制作煙花必需的。

好,下面可以開始制作了。

2.?????制作方法

?

2.0 輔助角色

?

在開始畫煙花軌跡之前,我們需要先建立兩個角色:一個是上面1.2章節(jié)講過的用來實現(xiàn)漸隱效果的黑色角色;另一個是聲音角色,用來集中控制聲音的播放。這樣在其它角色里只需要廣播播放某種聲音的消息,這個聲音角色就可以播放相對應的聲音。

upload/article/images/2020-11-25/969a4abedeaf8e038d4556d94b22b237.jpg

?

upload/article/images/2020-11-25/5c9607db8532295da8c6e803a684c19f.jpg

聲音效果可以極大地增強現(xiàn)實感,所以請務必給動畫配上聲音。

?

2.1 煙花發(fā)射

首先,我們做出煙花發(fā)射上升的效果,其實就是用畫筆畫一條有重力加速度的從下往上升的曲線,再配上音效。

upload/article/images/2020-11-25/2d9302b164ba4fd376a41884b19cd6d3.jpg

?

效果如下:

https://cdn.china-scratch.com/timg/191107/1405394317-4.gif

2.2 爆炸散開

-?????? 接著,我們讓煙花在上升到最高點時爆炸散開(vy=0時升到最高點,之后速度向下而下降)。散開其實就是使用克隆來產(chǎn)生很多的子煙花軌跡。

upload/article/images/2020-11-25/73d28e8eef6977e4e6e92eaba80084dd.jpg

-?????? 子煙花軌跡應該比上升時的軌跡要小。

-?????? 為了使爆開后的各條煙花軌跡呈圓形,我們控制水平方向和垂直方向的速度,使得vx=2*cosA和vy=2*sinA(A是隨機變化的角度值,代表速度的方向;2代表速度的值。這樣使得每條子煙花的速度方向發(fā)生變化,但速度的值不變,形成圓形)。原理如下圖所示:

upload/article/images/2020-11-25/11f4b7c9ddca4ae86c122bbcf4ad9eec.jpg

?克隆體的程序:

upload/article/images/2020-11-25/cc4d2651e12e767ca3008c37e8aea65c.jpg

第一種煙花效果做好了:

https://cdn.china-scratch.com/timg/191107/1405406210-12.gif

2.3 閃閃的煙花

接下來我們做下面這種閃閃的煙花效果:

https://cdn.china-scratch.com/timg/191107/14054152b-13.gif

-?????? 首先是用克隆的方法畫出很多條較細的煙花拋物線軌跡。同樣一束煙花的出發(fā)點應該一樣。通過改變它們的初始水平速度和垂直速度、以及線條顏色和大小,形成不同的煙花線條:?

upload/article/images/2020-11-25/6b09469dd89aaeb34f18431fe2ec63ec.jpg

upload/article/images/2020-11-25/0982999486668b67d6b5a35249d25412.jpg

效果:?

https://cdn.china-scratch.com/timg/191107/1405424H1-16.gif

-?????? 接下來做閃閃的亮點效果。首先是要改變角色的造型(變成一個純色的圓形);然后在克隆體的程序中,在煙花線條消失之前,使用圖章留下圓點。由于章節(jié)1.2中提到的漸隱作用,圖章留下來的圓點會一閃而過消失在黑暗中。記得改變圓點的大小和顏色哦。

upload/article/images/2020-11-25/67771d748bc199d8a88a9ce4f35a3722.jpg

upload/article/images/2020-11-25/5be9bf723bef11cf7d7396ced28785d0.jpg

第二種煙花效果也做好了:

https://cdn.china-scratch.com/timg/191107/14054152b-13.gif

2.4 煙花文字

接下來做煙花文字效果:?

https://cdn.china-scratch.com/timg/191107/1405435500-20.gif

-?????? 首先是用造型工具創(chuàng)建一個文字角色

https://cdn.china-scratch.com/timg/191107/14054414P-21.jpg

-?????? 讓文字先隱藏,先做出煙花發(fā)射上升效果

https://cdn.china-scratch.com/timg/191107/1405442E7-22.jpg

https://cdn.china-scratch.com/timg/191107/14054432c-23.jpg

-?????? 當煙花上升到最高點時(vy=0)即爆炸,然后文字出現(xiàn),并使用像素化讓其模糊。

-?????? 之后文字做重力加速下落。

-?????? 在下落過程中不停使用圖章留下軌跡,并配合章節(jié)1.2中提到的漸隱作用。

-?????? 再使用虛像使得文字逐漸消失

https://cdn.china-scratch.com/timg/191107/14054435J-24.jpg

https://cdn.china-scratch.com/timg/191107/1405445420-25.gif

-?????? 最后用同樣方法做出其它的文字煙花,改變顏色、位置及發(fā)射時間,效果如下:

https://cdn.china-scratch.com/timg/191107/1405435500-20.gif

2.5 3D煙花

-?????? 制作3D煙花效果需要了解3D特效的知識,請先參考此文《用Scratch做一個3D引擎》,設置好視點、投射面、旋轉(zhuǎn)角度等:

-?????? 3D煙花和2.1-2.2節(jié)介紹的2D煙花一樣,也是包括發(fā)射上升-爆炸散開的過程。首先也是要先發(fā)射一條在y方向做重力加速運動的煙花

https://cdn.china-scratch.com/timg/191107/14054541D-27.jpg

https://cdn.china-scratch.com/timg/191107/1405451514-28.jpg

-?????? 煙花上升到最高點后就爆炸散開:

https://cdn.china-scratch.com/timg/191107/14054641V-29.jpg

-?????? 為了使爆開后的各條煙花軌跡呈一個球體,我們控制x,y,z方向的速度,使得vy=2*sinA, vx=2*cosA*cosB,vz=2*cosA*sinB(A、B是隨機變化的角度值,它們控制速度的方向;2代表速度的值。這樣使得每條子煙花的速度方向發(fā)生變化,但速度的值不變,形成球體)。原理如下圖所示:

https://cdn.china-scratch.com/timg/191107/1405464N2-30.jpg

克隆體程序:

https://cdn.china-scratch.com/timg/191107/1405462952-31.jpg

3D煙花的效果:

https://cdn.china-scratch.com/timg/191107/14054K528-32.gif

最后我們把各種不同的煙花組合在一起,就是這個效果:

原程序請參考:

https://scratch.mit.edu/projects/284146235/

3.?????小結

除了上面提到的知識點,做好煙花效果的一個重要竅門是:多使用隨機數(shù)來改變時間、大小、顏色、速度等各種變量,做出各種不同的效果。煙花之所以吸引人,正是因為它們沒有固定的模式,變幻莫測。同學們請盡情發(fā)揮自己的想象力,用編程做出更多更炫的煙花效果。

聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯(lián)系刪除

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 观塘区| 冷水江市| 德格县| 龙口市| 汝州市| 棋牌| 宁阳县| 渝中区| 罗平县| 嘉祥县| 阳西县| 庆安县| 榆中县| 略阳县| 苍南县| 定结县| 大同县| 通辽市| 滨海县| 沐川县| 雷州市| 黄龙县| 通江县| 华坪县| 金平| 平江县| 博罗县| 闽清县| 昌图县| 巴里| 东莞市| 福建省| 石台县| 永胜县| 泾川县| 葫芦岛市| 奉化市| 含山县| 金沙县| 军事| 天祝|