Robo Code初階學習 五(並行碼篇)
不是每次只可以有一個動作在進行,我們可以在某些特定條件下讓2個或以上動作同一時間進行,例如向前的同時亮燈和響聲。
影片版 (舊版本)
圖文版
當一串code裡含有1個或以上的動作同時進行,我們將其稱為並行碼 Parallel Execution。
反之(即每次只執行1個動作),我們將其稱為順序碼 Sequential code,即我們先前所學的。
我們將並行碼中的「大泡泡」稱為狀態 State。
並行碼操作例子 - 如不使用駕駛動作,如何同時轉動兩個摩打?
在Robo Code App詳細介紹(摩打動作及Servo動作篇),我們提及過我們不需要使用兩個動作來控制摩打。
然而,我們可以以這個問題來做例子學習 - 我們如何不使用駕駛動作使車子向前?
我們可以將兩個摩打動作拉進同一個狀態裡,然後將兩者如上圖那樣設定成相反方向(一前一後),你知道為什麼嗎?
因為當你將兩個摩打分別裝在左右時,它們其實是「上下調掉」的狀態,若我們設成同一方向車將會反轉。
我們可以將不同的動作放在同一個狀態中,上限為3個。例如聲音+駕駛/燈光+聲音等等。
然而,它並不是沒有限制,請留意下方的講解。
什麼可以放在同一個狀態中?什麼不可以?
我們可以同時放入同一個狀態的動作是按照「不會發生衝突」的提前。例如,主塊不可能同一時間發出兩種不同的聲音,因此不可能同時存在響爸鈴聲和狗叫聲;RGB燈不可能在長亮的狀態下閃動,因此不可能同時存在亮燈和閃燈動作。
但是,摩打動作在有兩個DC摩打同時存在的情況下,便可以做到同時轉動,因此它們可以在同一狀態出現。但它也不可能做出「在向前的同時轉向」,所以這兩個動作也不能共存。