釣魚遊戲
這篇文章會介紹,如何在 Scratch 裡使用多個角色、函式、變數、重複、按下滑鼠、建立分身...等積木,實作一個水底有魚游來游去,可以使用滑鼠釣魚的小遊戲。
角色設定
在角色編輯區,刪除貓咪角色,加入「魚」的角色 ( 參考:Scratch 角色設定 )。
使用「繪畫」功能繪製一個空白的新的角色,命名為「釣魚線」 ( 參考:造型與繪圖 )。
因為釣魚線角色會使用「畫筆」畫出釣魚線,所以只需要一個完全空白的角色。
使用「上傳」功能,上傳一個「魚鉤」的新角色,命名為「魚鉤」。
魚鉤 SVG 圖片:下載網址
點選「魚鉤」角色,切換到「造型」頁籤,使用「選取」工具,將魚鉤的末端,對齊畫布的中心點 ( 魚鉤旋轉時,才會以末端為中心點旋轉 )。
將舞台背景換成水底世界的圖案,就能看到魚鉤和魚出現在水底 ( 調整魚鉤的大小如下圖的魚鉤尺寸 )。
積木程式原理 ( 魚鉤 )
點擊「魚鉤」角色,在綠旗被點擊時,使用重複無限次積木,讓魚鉤定位在舞台正上方 ( 0, 180 ),不斷朝著滑鼠方向旋轉 ( 指向滑鼠方向 )。
加入重複無限次積木,編輯滑鼠點擊時,放下魚鉤釣魚的動作:
- 新增一個 my 變數。
- 當按下滑鼠時,將 my 變數的數值設定為滑鼠的 y 座標。
- 使用重複積木,不斷重複往按下滑鼠的座標移動 10 點。
- 直到魚鉤的 y 座標大於按下滑鼠的 y 座標 ( my 的數值 ),或碰到魚的角色 ( 釣到魚 ) 為止。
- 放下魚鉤的重複動作停止後,接著使用另外一個重複積木,每次重複往反方向移動 ( 收回魚鉤 )。
- 直到魚鉤抵達最上方為止 ( 使用 175 可以避免超過最上方又反彈回來 )。
為了告訴釣魚線角色魚鉤的位置,所以新增 x 和 y 兩個變數,記錄魚鉤在角色移動時的座標數值。
完成後,點擊綠旗,在舞台上點擊滑鼠,魚鉤就會朝向滑鼠的方向移動,移動到點擊的位置後,就會移動回原本的位置。
積木程式原理 ( 釣魚線 )
點擊「釣魚線」角色,編輯點擊綠旗時的動作:
- 設定畫筆粗細為 2,顏色設定為黑色。
- 使用重複無限次積木,每次重複執行:
- 清除舞台筆跡。
- 定位到魚鉤出發的位置 (0, 180)。
- 下筆。
- 定位到魚鉤目前的位置 (x, y)。
- 停筆。
完成後,點擊綠旗,在舞台上點擊滑鼠,魚鉤就會朝向滑鼠的方向移動,後方也會出現一條黑色的釣魚線。
積木程式原理 ( 魚 )
點擊「魚」角色,編輯點擊綠旗的動作:
- 新增一個變數 ok,設定為 0,表示還沒有釣到魚。
- 隱藏本尊
- 使用重複四次積木,建立四個分身。
- 每次重複將尺寸、定位設定為隨機數 ( 定位設定在舞台下方的隨機數 )。
- 每次重複將造型換成下一個。
為了讓每個分身移動的速度不同,新增一個名為「魚游泳」的函式,加入「速度」參數。
編輯魚游泳的函式:
- 設定迴轉方式為「左-右」,避免上下顛倒。
- 使用重複無限次積木。
- 每次重複時,如果碰到魚鉤,且 ok 為 0 ( 表示魚鉤上沒有魚 )。
- 將變數 ok 設定為 1 ( 表示魚鉤上有魚 )。
- 使用重複積木,將魚定位在魚鉤的位置 ( 跟隨魚鉤移動 ),直到抵達舞台頂端為止。
- 抵達舞台頂端後,將 ok 設定為 0,刪除分身。
- 如果沒有碰到魚鉤,或魚鉤上有魚。
- 根據速度參數移動,設定撞到邊緣就反彈。
設定當魚的分身產生時,顯示分身,執行魚游泳的函式。
完成效果
完成後,點擊綠旗,就可以開始進行釣魚的小遊戲。
範例解答
範例解答:釣魚遊戲
延伸練習
如果已經熟悉了釣魚遊戲的原理,還可以嘗試更多好玩的作法:
- 修改程式,讓釣到魚之後,讓水中永遠保持四條魚,並加入計分的機制 ( 解答 )
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~