亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Scratch復(fù)刻游戲《羊了個羊》

        2022-12-02 20:01:33
        電腦報 2022年45期
        關(guān)鍵詞:卡槽列表卡片

        《羊了個羊》可謂空前火爆,當(dāng)大家都在考慮如何加入羊隊時,我卻不能專心玩游戲,作為一個編程的從業(yè)者,看到這種小游戲往往思考的是:它是如何做出來的?經(jīng)過一番嘗試,初步完成了Scratch版《羊了個羊》的核心功能。

        下面跟大家分享怎么用Scratch制作《羊了個羊》,受篇幅所限,本文主要聚焦卡片等核心功能的實(shí)現(xiàn),如有不當(dāng)之處,歡迎指正。由于《羊了個羊》游戲的卡片有很多,并且堆疊了多層,所以需要用到列表數(shù)據(jù)結(jié)構(gòu)來存儲卡片的相關(guān)信息(如圖1)。

        1. 一個卡片角色添加多個造型,背景是帶卡槽的草地。

        2. 背景功能和卡片克隆功能排序。

        3. 點(diǎn)擊卡片,角色移動到卡槽。

        4. 卡片在卡槽上占位。

        5. 刪除三個相同的造型。

        6. 判斷輸?shù)臈l件。

        7. 處于下層的卡片。

        8. 判斷勝利的條件。

        卡片角色有多個造型。背景包含帶卡槽的草地、開局、勝利。添加角色卡片,分別把不同卡片的樣式添加到角色卡片造型里面去。本文用到了9個造型,背景3個造型包括:開場游戲中帶卡槽、獲勝,素材和背景音樂從原版游戲中截?。ㄈ鐖D2)。

        建立變量排序、卡片總數(shù)、最后點(diǎn)擊。建立列表卡片造型、卡槽id、卡槽X、臨時卡槽id、重復(fù)1、重復(fù)2。

        1. 點(diǎn)擊綠旗開始,把背景換成開場造型,將旋渦特效增加3重復(fù)20次,再將旋渦特效增加-3重復(fù)20次變回,換成“游戲中帶卡槽”的造型。多線程播放音樂《羊了個羊》,等待完畢重復(fù)執(zhí)行(如圖3)。

        2. 排序之前我們來定義游戲卡片排序規(guī)則,橫行多少張卡片,豎列多少張卡片,卡片長度,卡片寬度。本程序橫9張卡片,豎6張卡片,卡片在程序中的步長也就是寬度為40,高度為45。通過橫豎卡片數(shù)量可以計算出第一層卡片數(shù)量為54張。通過對上述條件的計算我們就可以利用克隆功能把我們第一層的卡片排序出來。

        3.首先隱藏掉角色,建立變量排序,建立列表卡片造型,角色卡片移動到舞臺左上角,建議坐標(biāo)XY方向盡量取值整數(shù)便于計算。變量排序設(shè)置為1。54次重復(fù)執(zhí)行變量排序加1,再把排序加入列表卡片造型,如果變量排序大于9就把變量排序設(shè)為1,這樣列表卡片造型執(zhí)行出來的效果就是有6個1-9,列表長度54,顯示自己。

        4.將變量排序設(shè)置為1到列表卡片造型的項目數(shù)之間的隨機(jī)數(shù),換成列表卡片造型排序項的造型,克隆自己,刪除列表卡片造型的排序項,X方向增加40重復(fù)9次,再次回到原點(diǎn),Y方向增加-45重復(fù)6次第一層的卡片就排序完成再隱藏自己。

        5.當(dāng)作為克隆體啟動重復(fù)執(zhí)行碰到卡片2將亮度設(shè)為-50,表示被蓋住的下層卡片,否則設(shè)為0。代碼參考圖4。

        1. 設(shè)置列表“卡槽X”“卡槽id”。列表“卡槽X”的作用是在背景卡槽位置上固定卡槽X方向值,根據(jù)游戲規(guī)則,卡槽最多容納7張卡片,卡片的寬度步長40。所以我們要添加7個方向值到列表卡槽X里面去。Y方向是固定值(如圖5)。

        當(dāng)角色被點(diǎn)擊,將造型編號加入到列表卡槽id,移動到最前面,在0.3秒移動到X方向卡槽X的卡槽id項目數(shù)值項上。Y方向就在固定值上(如圖6)。

        1.這一部分是游戲的難點(diǎn),占位什么意思呢?比如當(dāng)我們點(diǎn)擊3張不同造型的卡片,這3次飛到卡槽是不一樣的卡片,第4次飛到卡槽的卡片和卡槽里面的第1張相同,那么第4次的卡片排位到第1張后面,這就叫占位。

        2.利用如果否則的條件判斷,如果“列表卡槽id包含了造型編號”,那么在列表卡槽id第(卡槽列表中的第一個造型編號的編號+1)項前插入“造型編號”實(shí)現(xiàn)占位功能。

        否則將造型編號加入列表卡槽id。

        代碼參考圖6。

        1. 這也是游戲的一個難點(diǎn),難在實(shí)現(xiàn)這一功能的思路有點(diǎn)繞,用了兩個“如果否則”嵌套判斷。

        新建三個列表,臨時卡槽id,重復(fù)1,重復(fù)2。對于點(diǎn)擊的卡片,如果沒有重復(fù)的就加入列表“臨時卡槽id”,重復(fù)1次的加入列表“重復(fù)1”,重復(fù)兩次的加入列表“重復(fù)2”,當(dāng)重復(fù)2次后就有了3張一樣的卡片,所以“重復(fù)2”里面就是重復(fù)3次的卡片。

        2. 程序嵌套:如果列表“臨時卡槽”包含了造型編號,嵌套“如果列表重復(fù)1包含造型編號,將造型編號加入列表重復(fù)2,否則加入列表重復(fù)1”,如果兩個都沒有包含就將造型編號加入列表“臨時卡槽id”。

        3. 廣播消息1到角色候補(bǔ)里面去,刪除此克隆體(如圖7)。

        1. 復(fù)制角色卡片命名為“候補(bǔ)”,為什么是候補(bǔ)呢?其實(shí)角色卡片克隆體飛到卡槽時,卡片的這一個克隆體已經(jīng)刪除,我們要用新角色“候補(bǔ)”來顯示,這也是編程中常用的一個技巧,你看見的只是本體在同一個位置上另外一個長得一樣的克隆體而已。

        繪制角色“結(jié)束”(也就是提示游戲輸了的提示語),自定義函數(shù)積木刷新,新建變量“編號”“臨時排序”“最后點(diǎn)擊”“總卡片數(shù)”(如圖8)。

        2. 功能實(shí)現(xiàn):當(dāng)點(diǎn)擊綠旗,隱藏角色候補(bǔ),將變量“編號”和“臨時排序”都設(shè)為1。移動到X方向(列表卡槽X的第變量值臨時排序項),Y方向固定值,克隆自己,將變量編號,臨時排序增加1重復(fù)7次(如圖9)。

        3. 當(dāng)接收到角色卡片發(fā)出的“消息1”時,如果列表重復(fù)2項目數(shù)大于0那么執(zhí)行刷新(其實(shí)就是把有三個相同的卡片刪除重新排序顯示),否則里面嵌套判斷如果變量編號小于列表卡槽id加1的項目數(shù),執(zhí)行顯示,否則隱藏,回到第一個判斷否則換成列表卡槽id的第變量編號項造型(如圖10)。

        4. 自定義函數(shù)積木“刷新”:將變量最后點(diǎn)擊設(shè)為列表重復(fù)2的第一項,刪除列表重復(fù)1,重復(fù)2,臨時卡槽id中第一個最后點(diǎn)擊的編號項。重復(fù)3次刪除列表卡槽id的第列表卡槽id變量最后點(diǎn)擊的值的編號項。將變量總卡片數(shù)增加-3(如圖11)。

        5. 角色結(jié)束:點(diǎn)擊綠旗隱藏,接收到背景發(fā)出消息失敗,移動到最前面顯示輸了(如圖12)。

        1.復(fù)制角色卡片命名為“卡片2”。

        2.自定義函數(shù)積木“制作卡片二層”。

        3.當(dāng)綠旗被點(diǎn)擊,隱藏自己等待4秒,制作第二層卡片。

        4.自定義函數(shù)積木“制作卡片二層”:方法也簡單,跟角色卡片原理一樣,只不過橫排卡片數(shù)量為5,豎排沒變化,方向XY取值到合理的位置生成二層。到這里我們就知道兩層卡片總卡片數(shù)為84了,大家跟著角色卡片思路來操作加強(qiáng)記憶和理解(如圖13)。

        注意不要忘了列表卡槽X和克隆體被點(diǎn)擊的程序(如圖14)。

        1. 判斷贏其實(shí)很簡單,只要總卡片數(shù)等于0就是贏了,這部分程序?qū)懺诒尘袄锩婢托辛耍ㄈ鐖D15)。

        《羊了個羊》這個游戲使用Scratch制作還是比較復(fù)雜,因篇幅所限沒能詳細(xì)介紹所有代碼,而且目前代碼還有一個較大的Bug,你在游戲的過程中應(yīng)該很容易發(fā)現(xiàn)。當(dāng)然這個Bug是可以解決的,我們會提供兩種版本的源代碼供您比較學(xué)習(xí),請關(guān)注公眾號“壹零社”下載第45期的代碼。

        猜你喜歡
        卡槽列表卡片
        巧用列表來推理
        擺卡片
        倒過來的卡片
        學(xué)習(xí)運(yùn)用列表法
        擴(kuò)列吧
        一張卡片
        一種側(cè)向插裝型車牌架
        電池拉環(huán)
        卡片
        LEXY連接頭動平衡實(shí)驗(yàn)分析
        区一区二区三免费观看视频| 99爱这里只有精品| 成年男人裸j照无遮挡无码| 日韩精品极品免费在线视频| 亚洲 小说区 图片区 都市| 亚洲国产另类精品| 亚洲精品一二区| 国产三级在线观看不卡| 青春草免费在线观看视频| 无码国产精品一区二区免费模式| 在线观看视频亚洲| 最新国内视频免费自拍一区| 少妇被猛烈进入到喷白浆| 亚洲人成电影在线观看天堂色| 在线观看亚洲AV日韩A∨| 国产一区二区av在线观看| 青春草在线视频观看| 国产精品无码a∨精品影院| 色综合久久久久综合999| 香蕉蜜桃av一区二区三区| 亚洲熟妇无码久久精品| 国产在线无码制服丝袜无码| 2021亚洲色中文字幕| 五月开心六月开心婷婷网| 久久久久久九九99精品| 日本一区二区不卡视频| 国产三级自拍视频在线| 美女很黄很色国产av| 亚洲精品美女久久久久99 | 国产精品一区二区三区精品| 久久久亚洲成年中文字幕| √天堂中文官网在线| 国产天堂网站麻豆| 杨幂二区三区免费视频| 亚洲av无码精品无码麻豆| 国产午夜精品一区二区三区不卡| 国产一起色一起爱| 东北老熟女被弄的嗷嗷叫高潮| 欧美a级毛欧美1级a大片免费播放| 国产精品九九九久久九九| 国产亚洲日本精品二区|