搜尋

Flappy Bird

這篇文章會介紹,如何在 Scratch 3 裡使用連續背景、變數、定位、座標、重複、偵測碰到其他角色...等積木,實作 Flappy Bird 小遊戲。

相關文章參考:定位重複偵測碰到其他角色

角色設定

在角色編輯區,刪除貓咪角色,加入「飛行的貓咪」角色,接著使用「上傳」,加入一張連續背景的圖片和一張水管的圖片,上傳後將背景命名為「背景-01」和「水管」 ( 參考:Scratch 角色設定 )。

連續背景可先使用範例圖片:連續背景水管

Scratch 3 教學 - Flappy Bird

積木程式原理 ( 貓咪 )

Flappy Bird 的遊戲方式,是在按下鍵盤空白鍵時,讓角色不斷在舞台中跳耀,首先將貓咪移到圖層最上層、定位到舞台正中間,接著新增一個名為 y 的變數,使用「重複無限次」、「如果...那麼...否則」積木,判斷是否按下空白鍵,如果按下空白鍵,就設定 y 為 10,如果沒有按下空白鍵,就讓 y 模擬重力加速度不斷改變 -2,最後透過角色 y 的改變,就能夠做到按下空白時,貓咪不斷往上跳,沒有按空白,貓咪往下自由落體的效果。

Scratch 3 教學 - Flappy Bird

完成後,點擊綠旗,不斷按壓空白鍵,就可以看到貓咪在畫面中上下跳動。

Scratch 3 教學 - Flappy Bird

接著為貓咪角色新增第二組綠旗點擊程式,使用「重複無限次」、「如果...那麼...否則」積木,判斷碰到舞台邊緣或碰到水管角色,就讓貓咪說出「呀!!!!」的文字。

Scratch 3 教學 - Flappy Bird

完成後,點擊綠旗,除了可以看到貓咪在畫面中上下跳動,碰到舞台邊緣的時候,貓咪就會說話。

Scratch 3 教學 - Flappy Bird

積木程式原理 ( 背景 )

將第一張背景圖定位在舞台的左邊,定位座標使用 (-238,0)使用 -238 的原因為了和第二張背景圖接合 ( 如果剛好 240 可能會造成移動切換時出現空隙 ),接著使用重複無限次判斷圖片位置,如果圖片的 x 座標移動到小於 -462,就讓圖片的 x 座標移動到 462

寬度 480 的圖片,抵達左右邊緣極限的座標為 -465 和 465,此處使用的 -462 和 462,是針對這張背景圖片所調整出不會有空隙的數值,如果使用是不同的圖片,可能有些微的變化。

Scratch 3 教學 - Flappy Bird

在角色區域,複製這個背景成為一個新的角色,修改名稱為「背景-02」,這樣程式就可以一併複製。

Scratch 3 教學 - Flappy Bird

將「背景-02」定位在舞台的右邊,定位座標使用 (238,0),其他程式不需修改。

Scratch 3 教學 - Flappy Bird

完成後,點擊綠旗,背景就會不斷往左移動,看起來就像貓咪不斷往前飛。

Scratch 3 教學 - Flappy Bird

積木程式原理 ( 水管 )

因為畫面中會不斷出現水管,所以水管角色採用「分身」的方式進行,一開始先隱藏本尊,然後每隔一秒建立分身,就能夠讓水管每隔一秒不斷出現。

Scratch 3 教學 - Flappy Bird

分身建立後,顯示分身,新增一個「位置」變數,隨機設定為 1 或 2,如果是 1,將分身定位在右邊上方,如果是 2,將分身定位在右邊下方 ( 高度使用 200~240 的隨機數,讓出現的高度不相同 ),接著使用「重複無限次」、「如果...那麼...否則」積木,讓水管不斷往左移動,當移動到最左邊時,就刪除分身

Scratch 3 教學 - Flappy Bird

完成效果

所有角色的程式都完成後,點擊綠旗,就能夠開始進行貓咪的 Flappy Bird 的遊戲。

Scratch 3 教學 - Flappy Bird

範例解答

範例解答:Flappy Bird

延伸練習

如果已經熟悉了Flappy Bird的原理,還可以嘗試更多好玩的作法:

  • 加上「計算碰撞次數」的機制。( 解答 )
  • 加上「計時」的機制。( 解答 )

意見回饋

如果有任何建議或問題,可傳送「意見表單」給我,謝謝~

Scratch 3 教學

基本介紹

關於 Scratch 3 使用 Scratch 3 註冊與登入 操作介面 我的東西

圖形與聲音

繪製造型&背景 編輯音效

程式積木

積木種類 動作 外觀 音效 事件 控制 偵測 運算 變數 清單 函式積木

擴充功能

音樂 畫筆 視訊偵測 文字轉語音 翻譯

技巧&觀念

全域變數、區域變數 控制指定分身 雲端變數 雲端變數記錄文字 變數串接文字 文字轉清單 中斷與停止程式 廣播訊息並等待 鍵盤與滑鼠 突破角色尺寸限制 角色與舞台邊界 重複積木的等待時間 清單數字排序 清單最大值最小值

入門範例

鍵盤控制貓咪 指向中間的箭頭 水果音樂鋼琴 貓咪的影分身之術 貓咪的細胞分裂 螃蟹跑來跑去 吃水果 摸蝴蝶 小狗追棒球 魚兒水中游 小鳥往前飛 舞棍阿伯 小時鐘 搖骰子 轉動的眼球 抽獎輪盤 大樂透電腦選號 移動到邊緣切換場景 人物依序跳舞 ( 廣播 ) 按鈕控制貓咪 ( 廣播 )

進階範例

貓咪跑步 ( 連續背景 ) 貓咪跑步 ( 超長背景 ) 大型數字 ( 圖形數字 ) 拖拉怪獸碰撞牆壁 鍵盤鋼琴 ( 記錄音符 ) 中文字逐字稿 英文字逐字稿 計算機 1 ( 顯示數字 ) 計算機 2 ( 加減乘除 ) 雲端聊天室 推貓咪 ( 視訊偵測 ) 圍捕小魚 ( 視訊偵測 ) 戳泡泡 ( 視訊偵測 )

視覺特效範例

視差效果 水中吐泡泡 雪花隨風飄 鍵盤鋼琴 ( 音符動畫 ) 無限循環畫中畫 水底探照燈 狙擊望遠鏡 ( 兩倍變焦 ) 貓咪萬花筒 仙女棒 ( 光跡效果 ) 駭客任務背景特效 放煙火 1 ( 往上發射 ) 放煙火 2 ( 爆炸效果 )

繪圖範例

鏡射畫圖 ( 對稱圖形 ) 小畫家 ( 舞台上畫圖 ) 記錄畫圖軌跡 繪製圓形 繪製橢圓形 繪製立方體 ( 會動 ) 繪製正多邊形 繪製正多角星形 ( 單純 ) 繪製正多角星形 ( 多線 ) 繪製拋物線 繪製折線圖 蜘蛛結網 ( 八邊形網 ) 繪製舞台方格 繪製正弦波形 ( sin ) 正弦波毛毛蟲動畫 顯示聲波圖形

物理&模擬範例

鐘擺運動 簡單磁鐵效果 兩個磁鐵的磁力線 立體空間 ( 三度空間 ) 循跡移動 拋物線發射炮彈 地球繞著太陽轉 彈跳的籃球 電風扇 ( 控制強度 ) 拉不走的彈力球 慣性移動 ( 滑鼠 ) 慣性移動 ( 鍵盤 )

入門遊戲範例

猴子接香蕉 打地鼠 刮刮樂 吹風機吹頭髮 太空狗閃躲隕石 九九乘法測驗 英文單字測驗 釣魚遊戲 拍西瓜 ( 儲存最高分 ) 形狀配對拼圖 台灣地圖拼圖 英文打字機 射擊外星人 猜數字 ( 猜大小 ) 猜數字 ( 幾 A 幾 B ) 連連看 ( 產生器 ) 連連看

進階遊戲範例

青蛙過河 青蛙過馬路 反彈球 ( 乒乓球 ) 打磚塊 狙擊氣球 ( 兩倍變焦 ) Flappy Bird 走迷宮 ( 基本 ) 大型迷宮 ( 鍵盤控制 ) 大型迷宮 ( 滑鼠控制 ) 翻翻卡 ( 卡牌記憶 ) 九宮格拼圖 音階記憶 貪吃蛇 小雞下樓梯

遊戲設計技巧

角色 ( 地上移動 ) 角色 ( 蹲下、左右轉 ) 角色 ( 跳耀、兩段跳 ) 角色 ( 牆壁、爬牆 ) 地圖 ( 清單轉換 ) 地圖 ( 二維陣列 ) 地圖 ( 控制移動 ) 地圖 ( 牆壁碰撞偵測 ) 地圖 ( 吃東西偵測 )