足球比賽有一整套復(fù)雜的規(guī)則,Scratch游戲中只能提取最核心且易于實(shí)現(xiàn)的規(guī)則。首先將雙方隊(duì)員從11人簡化為各一人,可以用該角色改變足球運(yùn)動方向。若球出界,則由對方發(fā)界外球,為了避免出現(xiàn)平局的情況,先得3分一方獲勝(圖1)。
本項(xiàng)目需要一個足球賽場背景,我們搜索圖片或用繪制畫出球場。球員選擇素材庫中的不同顏色小球(Ball),足球用沙灘球(Beachball)代替。
球場包含邊界、賽場、中線、中心圓、禁區(qū)、球門等,示例如圖2。
繪制一個球門大小的矩形作為進(jìn)球檢測標(biāo)記,由于它運(yùn)行時會隱身,所以顏色可以隨意選取。點(diǎn)擊矩形會出現(xiàn)右邊的中點(diǎn),盡量將其對準(zhǔn)造型中心,完成左邊球門的繪制。
右邊球門可以直接復(fù)制角色,為了保持對稱將左邊的中心對準(zhǔn)造型中心點(diǎn)。因?yàn)轭A(yù)備在下方放置計(jì)分變量,所以足球場整體需要上移一定距離,兩個球門坐標(biāo)左右對稱,我們這里將其分別設(shè)為(-207,20)與(207,20),具體坐標(biāo)取決于背景球門位置,應(yīng)在球門線外(如圖3)。
足球角色程序最復(fù)雜,我們以足球角色為主,將游戲分為三個環(huán)節(jié),首先依然是各項(xiàng)參數(shù)設(shè)定,包括雙方得分和控球標(biāo)記(用于判斷誰的界外球)。
然后是開球階段,球選好方向后開始運(yùn)動,運(yùn)動過程中可以被兩個球員角色改變運(yùn)動方向,若碰到邊線則進(jìn)入罰界外球階段。
罰界外球可以由玩家用鼠標(biāo)選擇罰球方向。
若碰到球門,則計(jì)分并重新開球。一方得分為3時,游戲結(jié)束。
足球碰到球門或邊線會進(jìn)入相應(yīng)判定,所以我們需要對球門與邊線進(jìn)行標(biāo)記。邊線外場顏色與內(nèi)場草地顏色不同,可以選取顏色標(biāo)記,具體程序在足球運(yùn)動中給出。
球門用方塊角色標(biāo)記,為了美觀將其虛像都設(shè)為100,可使其隱身且能被觸碰(圖4)。
球員需要被玩家控制,且能影響足球方向,為了將需求方向傳遞給足球,我們需要給球員一個明確方向,這里我們使用兩套按鍵控制方向改變,并在碰到足球時,將方向傳遞給足球。
第一個球員,我們使用“WASD”控制方向。第二個球員使用“上下左右”控制方向(圖5)。
開球方向我們使用隨機(jī)數(shù)決定,足球開局會移到足球場中心向?qū)Ψ桨雸龇较蛞苿?,并?biāo)記開球方觸碰足球(圖6)。
足球運(yùn)動過程中,每次移動1步,若碰到球員,則發(fā)出聲音改變方向?yàn)榍騿T運(yùn)動方向,并標(biāo)記碰到球員代號。若碰到場外顏色,則廣播出界,并后退1步離開邊線,停止當(dāng)前足球運(yùn)動腳本(圖7)。
出界后,若標(biāo)記球員為1,則聲明2號球員開球,反之則聲明1號球員開球。
開球后,標(biāo)記更新為開球方代號。
為了方便玩家自由選擇方向,我們這里使用鼠標(biāo)開界外球。點(diǎn)擊鼠標(biāo)后,球即面向鼠標(biāo)方向,回到“足球運(yùn)動”階段(圖8)。
任意一方進(jìn)球后,停止足球運(yùn)動,改變雙方比分,重新開球。進(jìn)球在程序中可以用碰到球門表示。若一方有3分,則獲得勝利,游戲結(jié)束(圖9)。
最后加上初始的參數(shù)設(shè)定。全部完成后,開始運(yùn)行調(diào)試,并可適當(dāng)優(yōu)化位置選擇(圖10)。
將兩個分?jǐn)?shù)變量顯示并放在舞臺下方(圖11)。
本項(xiàng)目通過拆解現(xiàn)實(shí)活動中的規(guī)則與規(guī)律,選擇適合改編的部分規(guī)則并將其用編程語言表達(dá)出來。鍛煉使用偵測指令、用廣播控制進(jìn)入不同的游戲階段的能力。是提高Scratch綜合應(yīng)用能力的好實(shí)例。
真實(shí)的足球比賽實(shí)際上是有時間限制的,到時間后根據(jù)比分判斷輸贏,那么我們可不可以設(shè)定游戲?yàn)?分鐘,時間到后根據(jù)雙方比分判斷輸贏呢?
本實(shí)例摘自電腦報(bào)出版的《Scratch3 .9青少年編程高分寶典》因篇幅限制有較大刪改,如果您想系統(tǒng)學(xué)習(xí)Scratch,夯實(shí)編程基礎(chǔ),還是需要買一本系統(tǒng)全面的教材。
“藍(lán)橋杯全國軟件專業(yè)人才設(shè)計(jì)與創(chuàng)業(yè)大賽”是由我國工業(yè)和信息化部人才交流中心舉辦,是當(dāng)前行業(yè)內(nèi)備受認(rèn)可的IT類科技競賽。在目前高校全面取消自主招生的大背景下,新的“強(qiáng)基計(jì)劃”為高校招生提出了發(fā)揮本校特長“聚焦培養(yǎng)高端芯片與軟件、智能科技、新材料、先進(jìn)制造和國家安全等國家人才緊缺的人文社會科學(xué)領(lǐng)域的人才”的要求。這其中不少方向與編程息息相關(guān),考生如果在藍(lán)橋杯上取得優(yōu)異成績必將在高校招生中占得先機(jī)。
《Scratch3.9青少年編程高分寶典》專為編程等級考試和藍(lán)橋杯大賽量身定做知識體系和真題題庫。