打砖块游戏-第12届蓝桥杯Scratch省赛1真题第5题
[導讀]:超平老師計劃推出Scratch藍橋杯真題解析100講,這是超平老師解讀Scratch藍橋真題系列的第51講。
第12屆藍橋杯青少年組省賽分兩次進行,這是2020年10月19日舉行的第一次省賽考試初級組,形式為在線考試。Scratch分為初級組和中級組,其中初級組面向7~10歲孩子,中級組面向11~14歲孩子。
打磚塊游戲,本題是第12屆藍橋杯Scratch第一次省賽真題初級組編程第5題,這是最后一題。題目要求考生編程創(chuàng)作一個打磚塊游戲,磚塊的初始生命值為1 - 5,磚塊被打擊一次,生命值減1,生命值為0的時磚塊消失。
先來看看題目的要求吧。
一.題目說明
編程實現(xiàn):
打磚塊游戲,磚塊的初始生命值為:1 – 5,磚塊被打擊一次,生命值減1,生命值為0的時磚塊消失。
具體要求:
1).?點擊綠旗舞臺呈現(xiàn)效果(27個磚塊如圖分布,且磚塊造型隨機顯示);
2).?小貓能不停地發(fā)射小球(間隔0.1秒),小球面向鼠標指針的方向發(fā)射,且小球碰到邊緣反彈;
3).?小球打到磚塊時小球消失,同時磚塊的生命值減1,呈現(xiàn)與生命值對應的造型;
4). 磚塊的生命值為0時,消失;
5). 所有磚塊消失,游戲結束。
評判標準:
-
20分:滿足要求1);
-
20分:滿足要求2);
-
20分:滿足要求3);
-
20分:滿足要求4);
-
20分:滿足要求5)。
二.思路分析
本作品一共有3個角色,分別是小貓、小球和磚塊,如圖所示:
其中小貓角色只需要顯示在舞臺左下角即可。不停地發(fā)射小球,意味著舞臺上會出現(xiàn)大量的小球,所以需要使用克隆,然后控制克隆體的運動即可。
本題的重點是磚塊角色,首先需要在舞臺上方克隆出27個磚塊,分3排擺放,這可以使用嵌套循環(huán)來實現(xiàn)。其次,每個克隆體磚塊都有不同的生命值,并顯示不同的造型,這需要使用私有變量。
?
三.編程實現(xiàn)
根據(jù)題目描述及思路分析,我們可以按角色逐個編寫程序:
-
小貓角色
-
小球角色
-
磚塊角色
1). 小貓角色
小貓角色最簡單,只需要設置好位置即可,代碼如圖所示:
2). 小球角色
小球是從小貓的手上發(fā)射出去的,需要先設置好小球角色的位置,然后每隔0.1秒克隆一個小球,代碼如下:
由于小球本體是不需要參與發(fā)射的,因此將本體隱藏起來。接下來就需要控制克隆體了,克隆體沿著鼠標的方向移動,如果碰到舞臺邊緣就反彈,如果碰到磚塊則刪除克隆體,代碼也比較簡單,如下:
當開關打開時,需要注意的是,“面向鼠標指針”指令,要放在循環(huán)外面,如果放在循環(huán)里面,則小球時刻面向鼠標移動,這不是我們要的效果。
2). 磚塊角色
根據(jù)前面的分析,每個磚塊克隆體都有自己的生命值,需要使用私有變量,創(chuàng)建私有變量“_生命值”如圖所示:
必須要勾選“僅適用于當前角色”選項,變量名前面加了一個下劃線,這是一個良好的編程習慣,讓自己和別人一看到這個變量,就知道是私有變量。
同時還需要創(chuàng)建一個變量用來表示磚塊的數(shù)量,其初始值為27。接下來,我們就可以克隆磚塊了,先上代碼:
這里使用了嵌套循環(huán),其中內層循環(huán)用于克隆每一排的9個磚塊,由于它們都是從左到右排列,所以,每次克隆之前,需要將x設置為-200,然后循環(huán)9次,每克隆1個,將x坐標增加50,向右移動一點。外層循環(huán)則表示要克隆3排,因此每克隆完一排,就將y坐標增加-40,向下移動一點。
在克隆磚塊之前,每次都需要設置私有變量”_生命值“的值,基于克隆體的特性,每個克隆體就擁有自己的生命值,并且互不相干。
有了克隆體磚塊,就可以根據(jù)自己的生命值來顯示不同的造型了,磚塊角色有5個造型,如圖:
接下來就需要檢測是否碰到小球了,如果碰到小球,則將生命值減1,如果生命值減到0,則需要刪除當前克隆體,并將磚塊數(shù)量減1。同時還需要判斷磚塊數(shù)量是否減到0,如果為0,則停止全部腳本,編寫代碼如下:
在刪除克隆體之前,增加了一個”等待0.01秒“指令,其作用是確保在刪除自己之前,讓小球角色能夠檢測是否碰到磚塊。如果沒有等待0.01秒,一旦磚塊角色的刪除此克隆體代碼比小球角色檢測碰撞代碼先執(zhí)行,那么小球就不會消失,從而出現(xiàn)小bug,這就是Scratch中經(jīng)典的雙克隆體碰撞問題。
需要注意的是, 這里的如果...那么指令嵌套了3層,你也可以不使用嵌套的寫法,但是這是判斷次數(shù)最少的寫法,也是最效率最高的寫法。
四.總結與思考
本題中等難度,難度系數(shù)為4,積木塊數(shù)量在47個左右,分值為100,涉及到的知識點主要包括:
-
Scratch克隆,包括克隆自己、當作為克隆體啟動時和刪除此克隆體3大指令;
-
克隆技巧,使用雙重循環(huán)克隆多行角色;
-
私有變量,通常和克隆體結合使用;
-
雙克隆體碰撞問題的特點及解決方案;
-
循環(huán)和條件的多層嵌套。?
很顯然,本題的考察重點是Scratch克隆,不管題目怎么變,始終記住一點,克隆體在克隆的那一刻,和本體的特征一模一樣,包括造型、大小、坐標、變量的值等。正所謂,萬變不離其宗,只要記住這一原則,如何控制每個克隆體的位置,如何為克隆體設置私有變量,都變得很簡單。
如果你覺得文章對你有所幫助,別忘了點贊,你的鼓勵是我堅持繼續(xù)寫下去的最大動力,Thanks?(・ω・)ノ。
?
總結
以上是生活随笔為你收集整理的打砖块游戏-第12届蓝桥杯Scratch省赛1真题第5题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qaq半中文编程
- 下一篇: 如何给公司节约成本,搭建免费开源监控系统