足球比賽有一整套復雜的規則,Scratch游戲中只能提取最核心且易于實現的規則。首先將雙方隊員從11人簡化為各一人,可以用該角色改變足球運動方向。若球出界,則由對方發界外球,為了避免出現平局的情況,先得3分一方獲勝(圖1)。

本項目需要一個足球賽場背景,我們搜索圖片或用繪制畫出球場。球員選擇素材庫中的不同顏色小球(Ball),足球用沙灘球(Beachball)代替。
球場包含邊界、賽場、中線、中心圓、禁區、球門等,示例如圖2。

繪制一個球門大小的矩形作為進球檢測標記,由于它運行時會隱身,所以顏色可以隨意選取。點擊矩形會出現右邊的中點,盡量將其對準造型中心,完成左邊球門的繪制。
右邊球門可以直接復制角色,為了保持對稱將左邊的中心對準造型中心點。因為預備在下方放置計分變量,所以足球場整體需要上移一定距離,兩個球門坐標左右對稱,我們這里將其分別設為(-207,20)與(207,20),具體坐標取決于背景球門位置,應在球門線外(如圖3)。

足球角色程序最復雜,我們以足球角色為主,將游戲分為三個環節,首先依然是各項參數設定,包括雙方得分和控球標記(用于判斷誰的界外球)。
然后是開球階段,球選好方向后開始運動,運動過程中可以被兩個球員角色改變運動方向,若碰到邊線則進入罰界外球階段。
罰界外球可以由玩家用鼠標選擇罰球方向。
若碰到球門,則計分并重新開球。一方得分為3時,游戲結束。
足球碰到球門或邊線會進入相應判定,所以我們需要對球門與邊線進行標記。邊線外場顏色與內場草地顏色不同,可以選取顏色標記,具體程序在足球運動中給出。
球門用方塊角色標記,為了美觀將其虛像都設為100,可使其隱身且能被觸碰(圖4)。

球員需要被玩家控制,且能影響足球方向,為了將需求方向傳遞給足球,我們需要給球員一個明確方向,這里我們使用兩套按鍵控制方向改變,并在碰到足球時,將方向傳遞給足球。
第一個球員,我們使用“WASD”控制方向。第二個球員使用“上下左右”控制方向(圖5)。

開球方向我們使用隨機數決定,足球開局會移到足球場中心向對方半場方向移動,并標記開球方觸碰足球(圖6)。

足球運動過程中,每次移動1步,若碰到球員,則發出聲音改變方向為球員運動方向,并標記碰到球員代號。若碰到場外顏色,則廣播出界,并后退1步離開邊線,停止當前足球運動腳本(圖7)。

出界后,若標記球員為1,則聲明2號球員開球,反之則聲明1號球員開球。
開球后,標記更新為開球方代號。
為了方便玩家自由選擇方向,我們這里使用鼠標開界外球。點擊鼠標后,球即面向鼠標方向,回到“足球運動”階段(圖8)。

任意一方進球后,停止足球運動,改變雙方比分,重新開球。進球在程序中可以用碰到球門表示。若一方有3分,則獲得勝利,游戲結束(圖9)。

最后加上初始的參數設定。全部完成后,開始運行調試,并可適當優化位置選擇(圖10)。

將兩個分數變量顯示并放在舞臺下方(圖11)。

本項目通過拆解現實活動中的規則與規律,選擇適合改編的部分規則并將其用編程語言表達出來。鍛煉使用偵測指令、用廣播控制進入不同的游戲階段的能力。是提高Scratch綜合應用能力的好實例。
真實的足球比賽實際上是有時間限制的,到時間后根據比分判斷輸贏,那么我們可不可以設定游戲為2分鐘,時間到后根據雙方比分判斷輸贏呢?
本實例摘自電腦報出版的《Scratch3 .9青少年編程高分寶典》因篇幅限制有較大刪改,如果您想系統學習Scratch,夯實編程基礎,還是需要買一本系統全面的教材。
“藍橋杯全國軟件專業人才設計與創業大賽”是由我國工業和信息化部人才交流中心舉辦,是當前行業內備受認可的IT類科技競賽。在目前高校全面取消自主招生的大背景下,新的“強基計劃”為高校招生提出了發揮本校特長“聚焦培養高端芯片與軟件、智能科技、新材料、先進制造和國家安全等國家人才緊缺的人文社會科學領域的人才”的要求。這其中不少方向與編程息息相關,考生如果在藍橋杯上取得優異成績必將在高校招生中占得先機。
《Scratch3.9青少年編程高分寶典》專為編程等級考試和藍橋杯大賽量身定做知識體系和真題題庫。