老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

Scratch克隆體技術(shù)介紹-創(chuàng)新互聯(lián)

一、引言

克隆技術(shù)是時(shí)下熱門的Scratch少兒編程考試或者競(jìng)賽必須面對(duì)的重點(diǎn)與難點(diǎn)之一。本文試圖從較高的層面探討Scratch編程中克隆技術(shù)的本質(zhì),并進(jìn)一步把克隆技術(shù)的應(yīng)用劃分為兩大類型——共享數(shù)據(jù)克隆體和非共享數(shù)據(jù)克隆體,最后給出各自的應(yīng)用舉例。

成都創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)邱縣,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108

對(duì)于初、高中對(duì)面向?qū)ο缶幊谈拍顩](méi)有基礎(chǔ)的小朋友,可以略過(guò)本注釋的閱讀轉(zhuǎn)而進(jìn)行第二小節(jié)的閱讀。熟悉其他高級(jí)編程語(yǔ)言的朋友都了解面向?qū)ο缶幊蹋淙N特征(封裝、繼承與多態(tài))都在Scratch中得到非常自然與形象的體現(xiàn)。在此暫不贅述,有興趣的朋友可多多聯(lián)系這些概念,從而更有助于理解Scratch中的克隆技術(shù)。

二、 Scratch中克隆體可分為兩種類型

編程中,當(dāng)需要大量相似的精靈完成相似的任務(wù)時(shí),建議主動(dòng)考慮使用克隆技術(shù)。其實(shí),通過(guò)大量應(yīng)用克隆技術(shù)的案例分析后,總體歸納一下,克隆體不外乎如下兩大種類型:


  • 【共享數(shù)據(jù)克隆體】這種克隆體允許其他克隆體或母體精靈訪問(wèn)它的數(shù)據(jù)(可以是任何信息,如生命值、X位置、Y位置等)。
  • 【非共享數(shù)據(jù)克隆體】如果一個(gè)克隆體的數(shù)據(jù)不需要被除自身以外的任何其他角色訪問(wèn),稱此種克隆體為"非共享數(shù)據(jù)克隆體"。

在以后的文章中我會(huì)通過(guò)全面的應(yīng)用實(shí)例來(lái)展示這里的結(jié)論。在本篇中,我們僅通過(guò)典型的小例來(lái)說(shuō)明問(wèn)題。

三、非共享數(shù)據(jù)克隆體舉例

這種類型的克隆體不需要共享信息,因此這種情況下問(wèn)題比較簡(jiǎn)單。

情形1:根據(jù)指定順序生成克隆體對(duì)象

制作非共享數(shù)據(jù)克隆體的一種方法是根據(jù)創(chuàng)建克隆體的順序?yàn)槊總€(gè)克隆體指定一個(gè)標(biāo)識(shí)號(hào)。且看下面的舉例運(yùn)行時(shí)截圖。

1、快照
Scratch克隆體技術(shù)介紹

設(shè)計(jì)想法是:當(dāng)游戲開(kāi)始時(shí)(點(diǎn)擊綠色小旗子),母體(黃頭貓)生成自己的三個(gè)克隆體,并在不同位置顯示;然后各自發(fā)言。造型設(shè)計(jì)如下:

Scratch克隆體技術(shù)介紹

下面,我們來(lái)看相應(yīng)的編程實(shí)現(xiàn)。
2、編程分析
首先,需要定義以下變量:


  • 標(biāo)記每一個(gè)克隆體ID的局部變量,在本文中稱為“l(fā)vID”(“l(fā)v”含義:Local Variable,即局部變量)。
  • 標(biāo)記克隆體任何屬性名稱的局部變量,如位置、速度等,本例中省略。

先來(lái)看母體代碼:

Scratch克隆體技術(shù)介紹

如前所述,當(dāng)點(diǎn)擊綠色小旗開(kāi)始程序執(zhí)行時(shí),母體生成三個(gè)克隆體。

【問(wèn)題】為什么上面的變量定義為局部變量?其實(shí),看過(guò)我前面文章( https://blog.51cto.com/zhuxianzhong/2473873 Scratch高級(jí)編程之妙用變量管理母體與克隆體 )的朋友都可能理解了在克隆體編程中局部變量與全局變量在克隆體編程中的奇妙作用。稍后的代碼中還會(huì)說(shuō)明這一點(diǎn)。
接下來(lái),我們分別為每個(gè)克隆對(duì)象啟動(dòng)下面腳本(積木【當(dāng)作為克隆體運(yùn)行時(shí)】的作用):

Scratch克隆體技術(shù)介紹

大家先略過(guò)代碼【說(shuō)(你好)】這一句,往下看。意思是:根據(jù)變量lvID的當(dāng)前值,克隆體切換成不同的對(duì)應(yīng)造型并修改自身其他屬性。


【問(wèn)題】如果有需要所有的克隆體立即都要做的事情,怎么辦?


【方法一】如上面代碼所示,可以在條件語(yǔ)句之前放置相應(yīng)的命令塊(此處只有一句問(wèn)好)。

【方法二】或者說(shuō)是更推薦的做法是,將這些命令塊放在另一個(gè)“當(dāng)作為克隆體啟動(dòng)時(shí)”中。
Scratch克隆體技術(shù)介紹

【小結(jié)】至此,我們實(shí)現(xiàn)了既定目標(biāo):根據(jù)指定順序生成克隆體對(duì)象。

接下來(lái),我們來(lái)簡(jiǎn)單介紹一下局部變量與全局變量在克隆體編程中的區(qū)別。這里只使用代碼展示一下:
首先,在母體角色(黃頭貓)引入一個(gè)全局類型變量“gv克隆體計(jì)數(shù)器”。簡(jiǎn)單修改一下母體代碼如下:

Scratch克隆體技術(shù)介紹

意思暫時(shí)不用解釋了。接下來(lái),添加如下代碼:
Scratch克隆體技術(shù)介紹

我們想點(diǎn)擊每一只貓時(shí)讓它說(shuō)出對(duì)應(yīng)的數(shù)據(jù),顯然觸發(fā)器“當(dāng)作為克隆體啟動(dòng)時(shí)”中的代碼塊只有克隆體執(zhí)行,而其他地方的代碼母體與克隆體都要執(zhí)行。因此,上面的代碼是母體與克隆體都要執(zhí)行的。
執(zhí)行結(jié)果截圖如下:
Scratch克隆體技術(shù)介紹

綠貓一開(kāi)始說(shuō)出自己的“l(fā)vID”值,稍后說(shuō)出全局變量“gv克隆體計(jì)數(shù)器”的值,如下圖:

Scratch克隆體技術(shù)介紹

點(diǎn)小紅貓,顯示如下:
Scratch克隆體技術(shù)介紹
其他省略......

熟悉面向?qū)ο缶幊痰呐笥?,如果結(jié)合變量(也稱作“屬性”)的繼承來(lái)理解這里公有變量與私有變量區(qū)別的話,相對(duì)更容易一些。

情形2:基于多種屬性制作克隆體

在更多情況下,例如在開(kāi)發(fā)炮塔類游戲的情況下,方向、造型及其他屬性的組合非常之多,簡(jiǎn)直數(shù)不勝數(shù)。在這種情況下,典型的方法是將這些屬性(方向、造型等)直接定義為一些全局變量——這些變量不屬于某一種角色,從而使得各種游戲角色(包括各種角色的克隆體)都可以操作這些變量。雖然這樣的方案(定義很多的全局變量)也帶來(lái)整體數(shù)據(jù)管理的復(fù)雜性,但這種辦法也確實(shí)是由軟件本身的復(fù)雜性和Scratch的局限性不得已而確定的。
接下來(lái)的代碼片斷中,我們只作部分關(guān)鍵代碼的展示,在以后的文章中我還會(huì)開(kāi)發(fā)出完整的小游戲來(lái)展示這些技術(shù)的應(yīng)用。下面是一個(gè)簡(jiǎn)單的空戰(zhàn)小游戲的截圖(尚不完善,所以只給出與本文主題直接相關(guān)的代碼分析)。
簡(jiǎn)單快照
Scratch克隆體技術(shù)介紹

當(dāng)然,實(shí)際空戰(zhàn)游戲中,會(huì)有我方與敵方的許多戰(zhàn)機(jī)(以及類型),子彈或者炮彈數(shù)量及類型更可能是很多種且數(shù)量更大。
數(shù)據(jù)結(jié)構(gòu)定義

基于上面分析,我們需要針對(duì)子彈的多種屬性創(chuàng)建許多全局變量(而不是局部于子彈角色的局部變量?。?。在本例中,將使用以下定義:


  • “gv子彈類型”用于區(qū)分玩家(我方)的子彈和對(duì)手的子彈
  • “gv子彈X坐標(biāo)”和“子彈Y坐標(biāo)”表示子彈的起始位置
  • “gv子彈移動(dòng)方向”表示子彈的移動(dòng)方向

關(guān)鍵代碼一
每當(dāng)想讓我方戰(zhàn)機(jī)角色開(kāi)始射擊時(shí),可以把下面腳本放在某個(gè)觸發(fā)器中(比如在按下空格鍵之后,或者某種情況下):
Scratch克隆體技術(shù)介紹

再看子彈角色造型設(shè)計(jì):
Scratch克隆體技術(shù)介紹

當(dāng)然,為了簡(jiǎn)化問(wèn)題,我們只設(shè)計(jì)了兩種造型:一種是我方子彈,一種是敵方子彈。
關(guān)鍵代碼二

相應(yīng)于上面的代碼,作為子彈角色,典型的克隆體執(zhí)行代碼設(shè)計(jì)可能是:
Scratch克隆體技術(shù)介紹

至此,我們給出非共享數(shù)據(jù)克隆體w使用的第二種更典型的情形分析。

接下來(lái),我們來(lái)看相對(duì)復(fù)雜的共享數(shù)據(jù)克隆體應(yīng)用的情況。

四、共享數(shù)據(jù)克隆體舉例

如前所述,本節(jié)中討論的“共享數(shù)據(jù)克隆體”是指其他精靈(包括母體精靈)或克隆體需要訪問(wèn)當(dāng)前克隆體的私有數(shù)據(jù),例如它的位置、造型名稱與編號(hào)等。
這里提供一種通用技巧就是,將克隆體的各私有數(shù)據(jù)存儲(chǔ)在若干個(gè)對(duì)應(yīng)的全局列表中,從而實(shí)現(xiàn)其他精靈可以訪問(wèn)特定克隆體的特定數(shù)據(jù)(屬性值)。
因?yàn)楸咎幍睦右彩切±?,但是為了有助于后面理解,先上運(yùn)行時(shí)快照的第一個(gè)。
Scratch克隆體技術(shù)介紹

注意:本例中,母體是老黃貓!

(一)數(shù)據(jù)結(jié)構(gòu)定義

要?jiǎng)?chuàng)建共享數(shù)據(jù)類型的克隆體,需要以下數(shù)據(jù)結(jié)構(gòu):


  • 一個(gè)叫做“gv克隆體計(jì)數(shù)器”的全局變量:這是一個(gè)計(jì)數(shù)器變量,用于統(tǒng)計(jì)創(chuàng)建的克隆體個(gè)數(shù)。
  • 一個(gè)叫做“l(fā)v克隆體編號(hào)”的局部變量:用于克隆識(shí)別自己。
  • “gv造型名稱列表”:這是一個(gè)存儲(chǔ)克隆體共享屬性的全局類型列表變量。在本例中,我們只定義這一個(gè)全局列表,用于(母體或者其他角色或者本克隆體的其他克隆體兄弟角色)跟蹤克隆體的造型信息。

(二)母體角色代碼一

Scratch克隆體技術(shù)介紹

本代碼實(shí)現(xiàn)了三點(diǎn)主要功能:
(1)母貓站在舞臺(tái)左上角(說(shuō)出自己的身份),兩個(gè)全局變量初始化
(2)通過(guò)執(zhí)行4次的循環(huán),創(chuàng)建4個(gè)克隆體,并初始化一個(gè)(這里只有一個(gè)?。┤至斜碜兞?br/>(3)還原母體造型(因?yàn)榻?jīng)過(guò)循環(huán)中的不斷切換造型的克隆操作后,母體造型有所改變)


【問(wèn)題1】為什么這里造型名稱列表內(nèi)容是空的?
【問(wèn)題2】私有變量“l(fā)v克隆體編號(hào)”為什么沒(méi)有在這里露頭?


(三)克隆體執(zhí)行代碼

Scratch克隆體技術(shù)介紹

含義:每只小貓變得小些;私有變量“l(fā)v克隆體編號(hào)”在此出現(xiàn),用于存儲(chǔ)當(dāng)前克隆個(gè)體編號(hào)(這個(gè)編號(hào)正在存儲(chǔ)在產(chǎn)生本個(gè)體時(shí)的全局變量中)。然后,調(diào)整一下自身位置,并報(bào)出自己的個(gè)體編號(hào)。最后一句比較關(guān)鍵:把當(dāng)前克隆體造型名稱存儲(chǔ)在全局列表變量中。

【思考】上述代碼中,能否把最后一句中的變量“l(fā)v克隆體編號(hào)”使用全局變量“gv克隆體計(jì)數(shù)器”代替?為什么?

(四)母體角色代碼二

Scratch克隆體技術(shù)介紹

很簡(jiǎn)單,當(dāng)點(diǎn)擊任何角色(包括母體)時(shí),報(bào)出自己的造型名稱。

【問(wèn)題】當(dāng)點(diǎn)擊母體時(shí),報(bào)出自己的造型名稱是否正確?根據(jù)Scratch支持特征,盡管母體中仍然可以訪問(wèn)私有變量“l(fā)v克隆體編號(hào)”的值,但是其含義已經(jīng)“歪曲”了!請(qǐng)認(rèn)真思考。當(dāng)然,有“面向?qū)ο缶幊獭备拍罨A(chǔ)的朋友,是不難理解這個(gè)問(wèn)題的。

(五)母體角色代碼三、四

Scratch克隆體技術(shù)介紹

由上面第三段代碼知,我們的設(shè)計(jì)目的是:當(dāng)用戶按下空格鍵時(shí),讓2號(hào)小貓思考“媽媽在哪?”這個(gè)問(wèn)題,并通過(guò)Scratch消息廣播技術(shù)尋找媽媽。
在第四段代碼中,媽媽接收消息時(shí),報(bào)出自己的身份。

乍看起來(lái)有點(diǎn)復(fù)雜,但是結(jié)合我前面發(fā)的兩篇克隆文章并結(jié)合本文前面的介紹,在真正理解了全局變量與私有(也稱“局部”)變量在克隆技術(shù)中的特殊用法后,上面的問(wèn)題肯定會(huì)豁然開(kāi)朗。有關(guān)截圖如下:

小貓思考:
Scratch克隆體技術(shù)介紹
貓媽媽回應(yīng):
Scratch克隆體技術(shù)介紹

其實(shí),我們還可以將兩種克隆體結(jié)合起來(lái)使用,在共享數(shù)據(jù)的同時(shí)創(chuàng)建不同類別的克隆體,從而創(chuàng)建功能更強(qiáng)大的游戲、創(chuàng)新創(chuàng)意小程序……

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前標(biāo)題:Scratch克隆體技術(shù)介紹-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://www.xueling.net.cn/article/pdjpo.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 成人片免费网站 | 中文国产成人精品久久一 | 西出玉门在线观看 | 欧美一级黄色片免费看 | 日韩国产在线 | 香港经典A毛片免费观看特级 | 久久精彩 | 国产精品一区二区在线免费观看 | 香蕉久热 | 国产精品中文字幕在线观看 | 亚洲AV无码欧洲AV无码网站 | 久久高清超碰AV热热久久 | 手机看一级毛片 | 欧美男女日b视频 | 一级毛片影视 | 校花高潮抽搐冒白浆视频 | 国产精品一区二区在线免费观看 | 又嫩又硬又黄又爽的视频 | 呻吟翘臀后进爆白浆 | 奇米影视777me | 欧美日韩激情视频在线观看 | www.色涩涩.com | 久久涩涩| 午夜二区| 久色青青 | 狠狠躁天天躁中文字幕无码 | 在线免费h视频 | 丝袜美腿国产综合久久 | 亚洲另类色区欧美日韩图片 | 日韩无码偷拍中文字幕 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | tobu8日本高清在线观看 | 国产亚洲欧美精品久久久 | 亚洲欧美清纯校园另类 | 人妖在线视频 | 综合狠狠开心 | 无码AV人片在线观看天堂 | 亚洲一区二区三区国产精品 | 国产不卡三区 | 亚洲午夜久久久久妓女影院 | 69超碰|