Scratch 事件處理方法比較

Scratch 事件處理方法比較

相同的問題,會有不同的解決方法。而相同的程式,也會有不同的設計方法。

依據每個人不同的經驗與看法,選擇自己擅用的工具,自然也就產生不同的策略來處理問題。

以下程式皆模擬物體自上方掉落,並碰觸其他物體。當中包含如下事件:

  1. 回到畫面最上方
  2. 不停的往下掉落
  3. 檢查是否掉落到地面,如果是就回到最上方
  4. 檢查是否碰到女孩,如果是就說話

https://scratch.mit.edu/projects/164187196/

介紹以下三種方法,並說明其設計的主要特點:

  1. 方法一
    視上述所有事件都是獨立發生,事件各有生命週期。因此,即便使用「無限迴圈」,彼此也不受限於任一事件,程式不至於卡住。充份運用 Scratch 中的平行,讓系統自己處理事件順序,將問題的焦點放在個別事件中。
  2. 方法二
    傳統程序導向的處理方式,程式僅有單一進入點,著眼於事件間的先後發生順序。避免使用「無限迴圈」導致程式陷入循環,適合單一處理的程式,如 mBot 機器車的控制。
  3. 方法三
    脫離不開程序導向的處理方式,但著眼於功能導向。將多個循序指令包裹成單一模組,以完整功能來代稱,而後以模組的功能來描述事件間的互動關係。當程式規模愈趨於複雜龐大,個別指令不易解釋事件關係,如能以模組功能來描述,將有助於描述原始問題。

相關連結:https://scratch.mit.edu/projects/164187196/