資訊內(nèi)容
Scratch第四十五講:微信跳一跳(二)
這一講CC哥對(duì)跳一跳的程序進(jìn)行一下完善,主要是增加三種特效,以使這個(gè)程序更像微信中的小程序。
讓我們先看一下這三個(gè)特效是什么:
大家看到了吧,這三種特效分別是:
1:當(dāng)按下空格鍵的時(shí)候,跳棋周圍出現(xiàn)了一些小點(diǎn),向跳棋飛去,看上去很有積蓄能量的效果。
2:當(dāng)跳棋落到下一個(gè)臺(tái)子上時(shí),會(huì)有一個(gè)效果光圈擴(kuò)散開(kāi)去。有一個(gè)落地的效果。
3:每成功一跳,跳棋旁邊就有一個(gè)得分的效果。
這個(gè)游戲是不是感覺(jué)效果更像微信里面的跳一跳啦?
讓我們來(lái)講一下這三個(gè)效果怎么做到的:
一:蓄能的小點(diǎn)點(diǎn)特效:
首先增加了一個(gè)角色來(lái)做這個(gè)特效。
角色的造型有兩個(gè),一個(gè)白點(diǎn),一個(gè)黑點(diǎn)。
這段代碼的設(shè)計(jì)邏輯和用到的命令主要是:
1:當(dāng)按下空格鍵之后,那么就在圍繞著跳棋的一定距離的區(qū)域,隨機(jī)產(chǎn)生一些小點(diǎn)。(方向,隨機(jī)數(shù),克隆)
2:這些小點(diǎn)產(chǎn)生以后,開(kāi)始向跳棋移動(dòng)。(方向、移動(dòng))
3:當(dāng)空格鍵松開(kāi),或者小點(diǎn)碰到跳棋就消失。(條件判斷組合)
我們直接看一下代碼:
這段就是對(duì)小點(diǎn)的初始值進(jìn)行設(shè)定,大小合適,設(shè)置成半透明來(lái)增加效果。另外變量i是用來(lái)控制設(shè)置小點(diǎn)的數(shù)量。
下面這段程序是關(guān)鍵:
大家注意到?jīng)]有,我并沒(méi)有用事件里面的當(dāng)按下“空格鍵“的命令,為什么呢?
如果大家對(duì)這個(gè)有疑問(wèn),可以重新回看我之前最早的一講:Scratch第十三講:按鍵的技巧,在這一講里,CC哥專門講了按下一個(gè)鍵,跟長(zhǎng)按一個(gè)鍵在scratch里面是有區(qū)別的。所以在這次的設(shè)計(jì)里面,我就用了長(zhǎng)按的技巧。希望大家復(fù)習(xí)一下。
這段程序的循環(huán)里判斷兩個(gè)條件:第一空格鍵被按下,第二小點(diǎn)數(shù)量不超過(guò)10個(gè)。如果符合這個(gè)條件那么就在距離跳棋40~60步的這一圈內(nèi),隨機(jī)克隆10個(gè)小點(diǎn),黑白小點(diǎn)交替克隆。為了保證小點(diǎn)分布的隨機(jī)性,我們先讓小點(diǎn)每次在克隆前,先回到跳棋上,然后隨便在0~360度之間選一個(gè)方向,然后移動(dòng)到克隆區(qū)域內(nèi),進(jìn)行克隆。克隆完畢后還返回跳棋上,再重新選擇隨機(jī)方向,移動(dòng)然后克隆。

這一段程序如果用了按下空格的命令,就會(huì)出現(xiàn)各種各樣的錯(cuò)誤。CC哥自己做的時(shí)候一開(kāi)始也忽略了,搞出一大堆bug。大家可以自己試試,看看為什么會(huì)出現(xiàn)這個(gè)錯(cuò)誤。
這部分程序就是每個(gè)克隆體出現(xiàn)后,向跳棋移動(dòng)的代碼。

CC哥也犯低級(jí)錯(cuò)誤,忘了放等待命令了,老看不到小點(diǎn)自己還奇怪了一下。我發(fā)現(xiàn)也有很多朋友在問(wèn)問(wèn)題的時(shí)候也老問(wèn)這類問(wèn)題,為什么我寫了代碼,但是執(zhí)行沒(méi)有反應(yīng)呢?90%都是忘了放等待命令啦
二:光圈的特效
這個(gè)CC哥也增加了哥角色。
角色的造型是CC哥用畫(huà)筆畫(huà)的,然后把白背景用scratch里面的繪圖效果處理掉了。

CC哥現(xiàn)在很多角色就自己順手做一下,其實(shí)也不用很復(fù)雜,一般畫(huà)筆和scratch造型里面自帶的一些工具就夠用了,只要細(xì)心點(diǎn)就行。用的最多的就是摳圖和去白背景,摳圖大家可以試試美圖秀秀,超級(jí)方便。有時(shí)間CC哥專門給大家做一講。
代碼不復(fù)雜,首先出現(xiàn)環(huán):
移動(dòng)到跳棋的位置。大小設(shè)定到合適的大小,用半透明來(lái)體現(xiàn)效果。
然后用循環(huán)來(lái)做漸變的特效。一是逐漸變大,二是逐漸變淡直到消失。
注意別忘了在循環(huán)里面放等待命令,否則你什么都又看不見(jiàn)了。
這段程序的關(guān)鍵是什么時(shí)候開(kāi)始執(zhí)行。
也就是說(shuō)需要用到消息和接收到消息的功能了,因?yàn)槲覀兪窃谔逄晒蟛艌?zhí)行效果,所以應(yīng)該放在跳棋角色的代碼里面,放在跳成功之后那一段命令中。
我們用了廣播并等待的命令,而不是廣播的命令,大家自己試的時(shí)候看看有什么區(qū)別。如果大家認(rèn)真看過(guò)CC哥每一講的話,應(yīng)該就知道區(qū)別。
三:得分的特效
這個(gè)相對(duì)簡(jiǎn)單,首先做了個(gè)得分的角色。這個(gè)也是用造型工具里面文本功能直接寫的。
大家注意一下,這個(gè)角色的造型不能放在中心點(diǎn),要靠右上方,因?yàn)槟阆M谔暹吷铣霈F(xiàn)得分,而不是在跳棋上出現(xiàn)得分。
這個(gè)特效就是三部分:
1:逐漸變大。
2:逐漸向上走。
3:逐漸消失。
程序就不解釋了,別忘了放等待命令哦。
這個(gè)跟剛才一樣,就是在什么時(shí)候出現(xiàn),我把它放在了下一步起跳前出現(xiàn)。
好了,今天的講座就到這里,關(guān)鍵是大家學(xué)習(xí)的時(shí)候,不能光看一遍,如果有條件一定要照著思路自己做一遍。如果做的有問(wèn)題,再參考CC哥的代碼看一看。編程就是同一個(gè)效果可以用很多方法實(shí)現(xiàn),所以不一定老師的就是最好的。經(jīng)驗(yàn)一定是要自己慢慢積累的。
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過(guò)郵件及時(shí)和我們聯(lián)系刪除
