搜尋

兩個磁鐵的磁力線

這篇文章會沿用「簡單磁鐵效果」的範例,在 Scratch 3 裡使用函式、數學計算、重複、定位、旋轉...等積木,實作兩個磁鐵之間的磁力線效果 ( 進一步更可以控制磁鐵的強度 )。

相關文章參考:函式重複數學計算定位旋轉

開啟範例

本篇教學為「簡單磁鐵效果」一文的延伸,請先開啟範例進行編輯。

範例連結:https://scratch.mit.edu/projects/564123957/

角色設定

在角色編輯區,複製藍色磁鐵角色,將角色改成紅色,三個角色的名稱改成「黑色磁鐵線」、「藍磁鐵」和「紅磁鐵」。

Scratch 3 教學 - 兩個磁鐵的磁力線

積木程式原理 ( 藍色、紅色磁鐵 )

點擊「藍色圓形磁鐵」角色,設定點擊綠旗時的動作:

Scratch 3 教學 - 兩個磁鐵的磁力線

點擊「紅色圓形磁鐵」角色,設定點擊綠旗時的動作:

Scratch 3 教學 - 兩個磁鐵的磁力線

積木程式原理 ( 黑色磁鐵線 )

因為舞台上同時有兩個磁鐵,所以磁鐵線必須要判斷「比較靠近哪個磁鐵」,根據距離進行對應的轉動,空間中兩點間的距離,可以參考下方圖片公式:

Scratch 3 教學 - 兩個磁鐵的磁力線

點擊「黑色磁鐵線」角色,從左側清單裡,新增「a距離」和「b距離」兩個變數,以及新增一個名為「兩點間直線」的函式,函式包含四個參數,勾選「執行完成後再更新畫面」。

Scratch 3 教學 - 兩個磁鐵的磁力線

編輯「兩點間直線」函式內容,根據兩點間的公式做設定:

Scratch 3 教學 - 兩個磁鐵的磁力線

編輯當分身產生的程式:

Scratch 3 教學 - 兩個磁鐵的磁力線

完成後,點擊綠旗,舞台上就會看到靠近藍色磁鐵的磁鐵線轉向藍色,靠近紅色磁鐵的轉向紅色。

Scratch 3 教學 - 兩個磁鐵的磁力線

積木程式原理 ( 模擬磁力線 )

做到這一個步驟,雖然可以讓磁鐵線轉向,但對於模擬磁力線來說,所有的磁鐵線都會被兩個磁鐵所影響,而不是像目前的「二分法」,所以接著要對「兩點間直線」的函式進行修改,新增「ab距離」和「h」兩個變數:

Scratch 3 教學 - 兩個磁鐵的磁力線

新增「a強度」和「b強度」兩個變數,預設值 5,表示兩個磁鐵的強度。

Scratch 3 教學 - 兩個磁鐵的磁力線

新增一個名為「旋轉方向」的函式,增加一個參數 deg,勾選「執行完畢再更新畫面」。

Scratch 3 教學 - 兩個磁鐵的磁力線

觀察舞台上的兩個磁鐵,磁鐵組成的區域共有八個,下圖呈現對應的數值判斷:

Scratch 3 教學 - 兩個磁鐵的磁力線

根據八個對應的數值,編輯「旋轉方向」的函式:

為什麼要多一個變數 n 呢?因為 Scratch 的邏輯判斷條件有限,為了不讓後面的判斷影響到前面,例如前面的判斷將角度增加為 180,當後面判斷到 180 的時候,就會又把角度作修改

八個判斷的條件列表如下:

方向區間 距離比較 旋轉方向
0> 方向 > -90 a距離 < ab距離 左轉
0> 方向 > -90 a距離 > ab距離 右轉
90 > 方向 > 0 b距離 < ab距離 右轉
90 > 方向 > 0 b距離 > ab距離 左轉
-90 > 方向 > -180 a距離 < ab距離 右轉
-90 > 方向 > -180 a距離 > ab距離 左轉
180 > 方向 > 90 b距離 < ab距離 左轉
180 > 方向 > 90 b距離 > ab距離 右轉

Scratch 3 教學 - 兩個磁鐵的磁力線

最後修改分身產生的程式:

Scratch 3 教學 - 兩個磁鐵的磁力線

完成效果

完成後,點擊綠旗,舞台上就會模擬出現兩個磁鐵的磁力線。

Scratch 3 教學 - 兩個磁鐵的磁力線

範例解答

範例解答:兩個磁鐵的磁力線

意見回饋

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

Scratch 3 教學

基本介紹

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

圖形與聲音

繪製造型&背景 編輯音效

程式積木

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

擴充功能

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

技巧&觀念

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

入門範例

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

進階範例

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

視覺特效範例

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

繪圖範例

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

物理&模擬範例

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

入門遊戲範例

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

進階遊戲範例

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

遊戲設計技巧

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