資訊內(nèi)容
精選教程丨掌握了這個功能,才算真正的Scratch高手!
本文原載于卡搭論壇,作者:靈問
教程內(nèi)容:云變量的介紹及使用
適用范圍:Scratch進(jìn)階
【一、創(chuàng)建一個云變量】
云變量和普通的變量大致是相同的,如果你的游戲非常寂寞的話,它只是一個普通的變量。但在卡搭上你是不會寂寞的,只要你愿意在程序上面下功夫(比如為了知道云變量的信息看我這篇亂糟糟的心得),你的程序就會有源源不斷的人來拜訪(當(dāng)然如果你邀請你的各路朋友一起來玩就更棒了),這個時候,云變量就會展現(xiàn)出它獨(dú)特的魅力——數(shù)據(jù)交流。
我假定你已經(jīng)知道了怎么刪除scratch里那只胖貓了。并且假設(shè)你已經(jīng)懂得如何丟上一架高大上的戰(zhàn)斗機(jī),并把屏幕涂成黑色,開始一場史詩大戰(zhàn)了!

然后我還假定你知道云變量就是創(chuàng)建變量的時候打上下圖中的這個勾:

然后它就會變成這樣,變量名字之前有一個小云朵,很萌的樣子:

我們試試操作這個變量吧,考慮到你是一個很有基礎(chǔ)的積木搬運(yùn)者,那我們寫的稍微復(fù)雜點(diǎn)應(yīng)該也沒什么問題:

我們理解一下上面的代碼,重復(fù)執(zhí)行,如果鼠標(biāo)鍵被按下,就把角色的 x 坐標(biāo)移動到鼠標(biāo)的 x 坐標(biāo),并更新云變量為 x 坐標(biāo)位置,否則,就移動到云變量指定的位置。
我們也要理解一下卡搭的服務(wù)器,為這么多熱愛編程的朋友服務(wù),它真的很辛苦,所以在我們操作云變量的時候,如果在循環(huán)中加上一個等待延時,就像上面那行我們沒有拖進(jìn)循環(huán)的代碼那樣,它會非常高興。(一般來說,變量內(nèi)容越多,延時就適量增大一點(diǎn))
好了,這就是一個初步的云變量操作方式,實(shí)際上它真的可以工作,比如:

就這么簡單?是的,云變量操作起來真的不復(fù)雜,何況研究云變量的你可是一個很有學(xué)習(xí)能力的人!
【二、一人一架飛機(jī)的實(shí)現(xiàn)】
假設(shè)你和你的伙伴都是飛機(jī)愛好者,想肩并肩一起翱翔在天際,那應(yīng)該怎么實(shí)現(xiàn)呢?
我們知道在單機(jī)模式下,我們可以設(shè)置兩個飛機(jī)角色,一個接受 asdf 的控制,一個接受“上下左右”的控制,但這種控制模式需要兩個人同時在一臺機(jī)器一個鍵盤上,這非常不適合輕度社交恐懼癥的我們啊~!好吧,我們計(jì)劃一人一臺機(jī)器,各自在自己的電腦上登錄游戲,操作各自的飛機(jī),這下總歸滿意了吧。
那應(yīng)該怎么實(shí)現(xiàn)呢?我們假定你對克隆體了解的不算少,我們先克隆兩架飛機(jī)起來,然后再創(chuàng)建幾個變量和另一個云變量——云變量一人一個,平等合作,怎么樣?
1.糾正變量名稱;(隨便給變量名稱命名可不是什么好習(xí)慣,至少你要保證自己不會忘記這個變量是用來做什么的。)

2.(用參雜著中文、數(shù)字、英語的名稱)創(chuàng)建第二個云變量;
注意:一個程序最多有10個云變量的配額,但我們考慮到之后程序的擴(kuò)展,所以大家節(jié)省點(diǎn)使用。

3? 以私有變量的方式創(chuàng)建如下兩個變量:飛機(jī)編號、倉庫標(biāo)記(這樣的變量對于克隆體來說,是各自獨(dú)立的);


4.出于對美觀和運(yùn)行效率的要求,我們把變量都取消顯示。

5.出于對美觀與識別的要求,我們給飛機(jī)增加一個造型

6.然后增加一個變量,取名叫 : 當(dāng)前控制;?這個變量就是普通的變量,既不允許是云變量,也不允許是私有變量。

很好,準(zhǔn)備工作完畢,我們來創(chuàng)建克隆體,請坐穩(wěn)扶好,代碼并不復(fù)雜(點(diǎn)擊圖片放大查看)。

左邊舞臺是運(yùn)行后的效果,如果理解了上面的代碼,就繼續(xù)看下一個單元,否則請參考下一自然段。
代碼的目標(biāo)是創(chuàng)建四架飛機(jī),兩種造型各兩架,小的出現(xiàn)在屏幕右上,作為控制角色選項(xiàng),特征為? 倉庫標(biāo)記 = 1;大的飛機(jī)作為展示效果,倉庫標(biāo)記 = 0;造型不同的飛機(jī)有不同的編號(1? /? 2)。我們重復(fù)兩次,在指定的地方克隆好,然后將主體隱藏起來。
然后我們將“當(dāng)前控制”變量初始化,設(shè)置為0,然后設(shè)置一個點(diǎn)擊事件,當(dāng)角色是“小飛機(jī)”的時候,我們將當(dāng)前控制換為該飛機(jī)的編號。
猜到我的思路了嗎?

【三、發(fā)送廣播,開始游戲!】
我們在延時 0.5秒之后(確保所有角色都已經(jīng)創(chuàng)建成功),發(fā)送廣播,讓所有角色——本體和克隆體們,聆聽我們的呼喚,? 進(jìn)入游戲? !
然后針對這個 進(jìn)入游戲 的廣播,我們分成兩段處理:

我們知道本體的編號等于0,而且本體只有一個,所以我們在這里進(jìn)行控制判斷,如果 當(dāng)前控制 = 1 且鼠標(biāo)鍵被按下,則更新1號云變量為鼠標(biāo)x坐標(biāo),如果 當(dāng)前控制 = 2 且鼠標(biāo)鍵被按下,則更新2號云變量為鼠標(biāo)x坐標(biāo),這是上面代碼塊的前半截。
如果編號不等于0,且倉庫標(biāo)記為0的,則反復(fù)將自己的位置設(shè)置為云變量指定的位置,這是上面代碼的下半截。
是不是很清晰,是不是很明了,是不是要再看兩遍。看明白之前不許走~!
運(yùn)行起來是這樣的,你可以和朋友試試:

好了,你可以按照這個方式創(chuàng)建三個、四個甚至更多的飛機(jī)進(jìn)來,但我們這樣就滿足了嗎?難道你不想和你的朋友PK一下嗎?難道你看到了這里還不打算點(diǎn)個贊嗎?
剩下的,下次聊。
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時和我們聯(lián)系刪除
- 上一篇
scratch中的數(shù)學(xué)算式拼接問題
們的新書中有一個這樣的算式63+ax9/b-12xc+d=29,很多讀者在計(jì)算的時候都發(fā)現(xiàn)運(yùn)行結(jié)果不正確,發(fā)現(xiàn)都是算式拼接不正確造成的。 我們先舉一個簡單的例子,計(jì)算出(2+3)*(4-1),如果不太注意運(yùn)算順序很可能就拼成了這樣:
- 下一篇
從Scratch開始學(xué)習(xí)兒童編程
前段時間我和女兒到武漢一家比較大的教育機(jī)構(gòu)進(jìn)行一堂兒童編程的體驗(yàn)課。整個下來我覺得問題很大,所以我萌生了自己教女兒學(xué)編程的想法。 這堂體驗(yàn)課全程是讓孩子們進(jìn)行javascript編程,9歲左右的孩子在老師的帶領(lǐng)下,生硬的改動著一大段代碼中的某個小部分代碼,驅(qū)動一個游
