[重要]Output Blocks「並行順序」
當個1個以上的output同時運作,我們稱之為「並行」。
經過一連串的學習後,我們可以得知有3個output blocks可以做到同時執行的效果。他們分別是聲音的「Play sound」、燈光的「Set led」和摩打的「Set motor speed」。
然而,這裡產生了兩大問題:
- 我們之前只玩過2個output,那麼3個或更多的output可以同時執行嗎?
- 我們一直強調這些「並行」blocks都有順序(意思即是如果上下放錯將會無法並行),那三者之間應如何排列?
問題一、3個block可以同時運行嗎?
例子:
我們不妨隨便把這3個blocks亂放再播放試試看
如無意外你應該會發現他們無法同時運行。例如上面的例子,你會發現它是先播聲音然後轉摩打再轉燈,是一個跟著一個執行。
這裡要注意的你,你很多可能會誤會了摩打和燈在上圖的例子是同時運行的,但只要你播放多幾次細心留意一下,你會發現他們並不是同步的。
但是,這並不代表3個output是不可行的,只要我們跟從並行次序。
說了這麼久,並行次序到底是怎樣的?
與其直接寫出答案,我建議大家自己一個一個測試,調亂次序直到成功,因為這樣才可以深刻地記住。
把Set led和Set motor speed掉轉,得出的結果是:先播放聲音,然後摩打和燈是同時亮著的。由此得知燈和摩打的擺放沒有問題。
到了這裡,大家可以自己試一試聲音應該放在哪裡,再看下面的答案!
經過多次試驗後,我們得出這個結論。
燈光>摩打>聲音
燈光永遠是最優先的,即是例如你想做「車子行走同時開燈,便應該把燈光放在上面」。
其次是摩打,所以無論你想做任何聲音同步的動作,也請把聲音放在下面。
為什麼我有時看似跟從了順序,也做不到並行 ?
記得它嗎?我們在先前已經做過一次了。
你有沒有發現,當我們使用blink時,黃色(燈光)的block是放在摩打(藍色)下面的。
但是,當我們使用Set led to時,Set Speed block就在下方,為什麼?
這裡有很重要的一點,上面的rules只適用在聲音的「Play sound」、燈光的「Set led」和摩打的「Set motor speed」這三個block之間。
如果我們使用其他的block做同步,例如之前做的blink,就不適用這個規則。當配合其他block時,Set Led、Set Speed和play Sound block永遠在上面。