資訊內(nèi)容
scratch編程之貪吃蛇
貪吃蛇的游戲除去開(kāi)始動(dòng)畫(huà)、結(jié)束動(dòng)畫(huà)、分?jǐn)?shù)累計(jì)等環(huán)節(jié),最重要的是利用方向鍵控制蛇的移動(dòng)以及蛇身的變長(zhǎng)的實(shí)現(xiàn)。分解一下任務(wù),事情會(huì)變簡(jiǎn)單。
01控制移動(dòng)對(duì)于控制單個(gè)角色的的移動(dòng)大家都不陌生,利用四個(gè)方向鍵作為觸發(fā)事件。所不同的是,貪吃蛇是持續(xù)移動(dòng),移動(dòng)的程序需要單獨(dú)寫出,方向鍵只負(fù)責(zé)控制角色運(yùn)動(dòng)的方向。這里,我們用角色庫(kù)中“ball”作為角色。程序如下圖:
如果運(yùn)行程序,我們會(huì)看到角色“ball”會(huì)受方向鍵控制,但這絕對(duì)不像一條蛇,其實(shí)就是一個(gè)球。這個(gè)球,我們可以看做是蛇頭。
蛇的身體哪里來(lái),這就不得不談到“克隆”了。
所謂“克隆”是指控制代碼當(dāng)中的一類積木。它的作用是復(fù)制角色本身或其他角色,被克隆的一般叫做“本體”,新角色被稱為“克隆體”。同時(shí),克隆體繼承本體在克隆那一刻所有特性,包括角色顏色、大小、方向、畫(huà)筆、特效等等。克隆體可以獨(dú)立編程、運(yùn)行。
執(zhí)行如下程序:
每秒復(fù)制一次克隆體,由于本體在不斷前進(jìn),克隆體會(huì)留在原地(即克隆發(fā)生是本體所在位置)形成蛇身。克隆體啟動(dòng)后,讓它切換造型,用來(lái)跟本體區(qū)分。
程序執(zhí)行效果如圖:
蛇的造型完成了,由于克隆體在不斷復(fù)制,蛇身是無(wú)限延長(zhǎng)的。蛇身如果是固定長(zhǎng)度,它應(yīng)該是有限的克隆體。如果要蛇身持續(xù)移動(dòng),我們應(yīng)該刪除掉“尾巴”,即最先生成的克隆體。
程序如下:
大家看到程序很簡(jiǎn)單,它巧妙地刪除掉了最先生成的克隆體,并使蛇產(chǎn)生了移動(dòng)的效果(注意克隆體是沒(méi)有發(fā)生移動(dòng)的)。請(qǐng)注意,刪除克隆體的等待時(shí)間,決定了蛇身的長(zhǎng)度。
到此,程序最困難的部分已經(jīng)完成,大家一定要好好理解一下克隆體的特點(diǎn)。
03吃了蘋果會(huì)變長(zhǎng)首先我們需要新角色,選取角色庫(kù)中角色“apple”。蘋果的角色的效果類似于扎氣球游戲中的氣球。當(dāng)蛇碰到之后隱藏消失,并選擇新的位置出現(xiàn)。
編程如下:
前文我們說(shuō)到,刪除克隆體的等待時(shí)間,決定了蛇身的長(zhǎng)度。我們添加一個(gè)變量“長(zhǎng)度”, 每吃到蘋果變量數(shù)值增加1。
程序在上面程序基礎(chǔ)上更改如下:
角色“ball”程中序做如下修改:
想一想,為何變量“長(zhǎng)度”初始數(shù)值為3,還可以用其它方式完成嗎。
至此,貪吃蛇的程序就完成了。克隆效果可以有效重復(fù)單一動(dòng)作,省去制作新角色時(shí)間,在很多編程游戲中都有運(yùn)用。
當(dāng)然,這個(gè)作品有很大的改進(jìn)空間,對(duì)比自己之前接觸到的游戲,有沒(méi)有新的想法呢。歡迎大家溝通交流,一起成長(zhǎng)。
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過(guò)郵件及時(shí)和我們聯(lián)系刪除

- 上一篇
Scratch3.0+WEDO2.0教材書(shū)
- 下一篇
Scratch全國(guó)少兒編程競(jìng)賽獲獎(jiǎng)作品《穿越時(shí)空的大戰(zhàn)》解析下篇
Scratch全國(guó)少兒編程競(jìng)賽 獲獎(jiǎng)作品解析 《穿越時(shí)空的大戰(zhàn)》 本文介紹的作品是全國(guó)青少年創(chuàng)意編程與智能設(shè)計(jì)大賽創(chuàng)意編程比賽一等獎(jiǎng)獲得者齊嘉懿同學(xué)的參賽作品。 作品說(shuō)明 游戲主人公在名偵探柯南的幫助下,體驗(yàn)了最新的科技發(fā)明——AI機(jī)器人和