搜尋

拉霸機 ( 吃角子老虎機、Slot Machine )

這篇文章會介紹透過 Scratch 的角色位置的換算,搭配清單、函式、全域變數和區域變數,實作一個俗稱「吃角子老虎機」的拉霸機效果。

快速導覽:

繪製角色 ( 拉霸機花色 )

製作拉霸機的關鍵點在於「花色」的角色,必須按照步驟實作,過程中請務必確認位置和尺寸是否相同,首先使用「繪畫」的方式建立角色「shape」作為拉霸機的花色,使用方形工具繪繪製一個「60x60,白色無邊框」的正方形,並將正方形對齊畫布的中心點 ( 使用滑鼠拖拉正方形靠近畫布中心點時,會自動吸附到畫布中心點 )。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 60x60,白色無邊框正方形

繼續使用方形工具,在白色正方形裡繪製圖案,注意圖案尺寸不要超過白色正方形,完成後全選圖案和正方形,點擊上方「建立群組」按鈕將其組合成群組。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 在白色正方形裡繪製圖案

複製群組,先將複製的群組對齊畫布中心往上移動 60 點,使尺寸變成 60x120,接著解散群組

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 往上移動 60 點,使尺寸變成 60x120

解散群組後就可以修改圖形,將原本的圖案改成其他的圖案 ( 範例將綠色正方形改成黃色三角形 )。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 將原本的圖案改成其他的圖案

接著如法炮製,繪製許多不同的圖案,並調整上下位置,因為每一組圖案的高度都是 60,因此上下移動時也都採用 60 為單位移動,範例使用 15 組圖案,尺寸就會是 60x900 ( 60x15=900 ),對齊時可以使用 ctrl + a 全選移動,將「第四組」圖案用目測的方式對齊畫布中心,上方還會有三組圖案

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 使用 15 組圖案

繪製角色 ( 拉拉霸機、貓咪 )

使用「繪畫」的方式建立角色「bg」作為拉霸機的造型,繪製時使用許多深棕色四邊形,搭配一些文字和邊框,實作如下圖的造型,注意中間需要保留一些透明區域,作為呈現花色使用

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 建立角色「*bg*」作為拉霸機的造型

使用「選個角色」的方式建立角色「cat」,角色選擇 Scratch 預設的貓咪,完成後將花色 shape、拉霸機 bg 和貓咪 cat 按照下圖,排列在舞台中,並按照自己的繪製方式調整位置,使得拉霸機具備可以呈現三組花色的空間*。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 按照自己的繪製方式調整位置,使得拉霸機具備可以呈現三組花色的空間

程式原理 ( 拉霸機花色 )

點擊「shape」角色,從左側積木清單裡新增「建立分身」函式,勾選「執行完畢再更新畫面」。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 新增「建立分身」函式

先將角色定位在 (-80,0),接著透過函式產生三個分身,每次產生分身後就往右邊移動 80 點,完成後隱藏本尊。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 新增「建立分身」函式

從左側積木清單裡新增「形狀清單」函式,勾選「執行完畢再更新畫面」。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 新增「形狀清單」函式

形狀清單的函式主要負責「建立花色形狀的清單」,由於花色可能很多,可以透過「文字轉清單」的方式,先建立 source 和 n 變數,根據花色建立對應的文字字串 ( 例如紅綠黃就會是 rgy ),接著運用重複迴圈建立清單

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 文字轉清單

從左側積木清單裡,建立「僅適用當前角色」的區域變數「$_shape」,目的在於「分別控制」不同的分身,變數名稱開頭使用「$_」區分區域變數和全域變數。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 僅適用當前角色

編輯「當分身產生」的程式,讓三組花色以隨機高度出現,並運用 $_shape 區域變數搭配 x 座標,當按下空白鍵或滑鼠時,分身會由左到右每隔 0.5 秒依序做動作

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 運用區域變數搭配 x 座標

從左側積木清單裡新增「轉動」函式,不要勾選「執行完畢再更新畫面」,替函式加入轉動次數 num、速度 v 和加速 dy 三個參數

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 加入轉動次數 num、速度 v 和加速 dy 三個參數

從左側積木清單裡,建立「僅適用當前角色」的區域變數「$_dy」,目的在讓不同分身之間的加減速不會互相影響,變數名稱開頭使用「$_」區分區域變數和全域變數。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 僅適用當前角色

編輯「轉動」函式內容,函式主要負責花色的轉動,除了「等速」轉動,還會根據加速減速的參數進行加速或減速,轉動時加入邏輯判斷,如果 y 的位置太低就設定角色的 y 座標為 480。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 根據加速減速的參數進行加速或減速

編輯「當分身產生」的程式,加入三組「轉動」函式,依序是「加速、等速、減速」,完成後先將 y 座標補滿成 60 的倍數,在滑動 0.2 秒到「y 座標 + 60」的位置 ( 往上滑動一格 ),做出擬真的拉霸停止效果,當拉霸停止後,根據目前所在的 y 座標換算出數值,透過數值取得 shape 清單裡的名稱,將名稱存入 result 清單裡

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 做出擬真的拉霸停止效果

從左側積木清單裡新增「判斷得分」函式,勾選「執行完畢再更新畫面」。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 新增「形狀清單」函式

當花色停止轉動後,使用「判斷得分」函式判斷 result 清單內容,如果清單內容三個都相同表示中大獎,發送廣播訊號 1,如果只有兩個相同就發送廣播訊號 2。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 新增「形狀清單」函式

程式原理 ( 拉霸機、貓咪 )

點擊拉霸機「bg」角色,設定點擊綠旗時的定位以及在最上層。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 設定點擊綠旗時的定位以及在最上層

點擊貓咪「cat」角色,設定點擊綠旗時的定位以及在最上層,並設定收到 0、1、2 的廣播時要講的內容。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine ) - 設定收到 0、1、2 的廣播時要講的內容

效果展示

完成後點擊綠旗,就可以開始拉霸機的吃角子老虎機遊戲。

Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine )

範例解答

範例解答:Scratch 教學 - 拉霸機 ( 吃角子老虎機、Slot Machine )

意見回饋

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

Scratch 教學

基本介紹

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

圖形與聲音

繪製造型&背景 編輯音效

程式積木

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

擴充功能

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

技巧&觀念

全域變數、區域變數 深入理解區域變數 控制指定分身 控制所有分身的方法 雲端變數 雲端變數記錄文字 變數串接文字 判斷英文字母大小寫 中斷與停止程式 廣播訊息並等待 鍵盤與滑鼠 滑鼠點擊與長按 點擊隱藏的角色 突破角色尺寸限制 角色與舞台邊界 重複積木的等待時間 音樂暫停與繼續播放 使用造型名稱建立清單 使用造型代替變數 文字轉清單 清單合併為文字 判斷兩個清單是否相同 複製清單、反轉清單 清單數字排序 清單最大值最小值

入門範例

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

進階範例

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

視覺特效範例

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

繪圖範例

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

物理&模擬範例

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

入門遊戲範例

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

進階遊戲範例

青蛙過河 青蛙過馬路 反彈球 ( 乒乓球 ) 打磚塊 狙擊氣球 ( 兩倍變焦 ) Flappy Bird Flappy Bird ( 聲控版 ) 走迷宮 ( 基本 ) 大型迷宮 ( 鍵盤控制 ) 大型迷宮 ( 滑鼠控制 ) 翻卡記憶遊戲 翻卡記憶遊戲 ( 改良版 ) 井字棋 ( 圈圈叉叉 ) 九宮格拼圖 九宮格拼圖 ( 改良版 ) 音階記憶 貪吃蛇 ( 分身版 ) 貪吃蛇 ( 畫筆版 ) 小雞下樓梯 拉霸機

團康遊戲範例

搖骰子 ( 1~3 個 ) 比手畫腳 ( 猜動物 ) 音樂傳球遊戲 大聲公 ( 比賽誰的氣長 ) 抽籤 ( 可調整中籤數量 ) 轉盤指針 ( 指到誰就當鬼 ) 倒數計時器 ( 基本版 ) 倒數計時器 ( 大數字版 )

遊戲設計技巧

角色 ( 地上移動 ) 角色 ( 蹲下、左右轉 ) 角色 ( 跳耀、兩段跳 ) 角色 ( 牆壁、爬牆 ) 地圖 ( 清單轉換 ) 地圖 ( 二維陣列 ) 地圖 ( 控制移動 ) 地圖 ( 牆壁碰撞偵測 ) 地圖 ( 吃東西偵測 ) 俄羅斯方塊 ( 角色與背景 ) 俄羅斯方塊 ( 移動與碰撞 ) 俄羅斯方塊 ( 放置方塊 ) 俄羅斯方塊 ( 消除完成方塊 ) 俄羅斯方塊 ( 下個形狀 )