{{ 'fb_in_app_browser_popup.desc' | translate }} {{ 'fb_in_app_browser_popup.copy_link' | translate }}
{{ 'in_app_browser_popup.desc' | translate }}
{{word('consent_desc')}} {{word('read_more')}}
{{setting.description}}
{{ childProduct.title_translations | translateModel }}
{{ getChildVariationShorthand(childProduct.child_variation) }}
{{ getSelectedItemDetail(selectedChildProduct, item).childProductName }} x {{ selectedChildProduct.quantity || 1 }}
{{ getSelectedItemDetail(selectedChildProduct, item).childVariationName }}
專題簡介
這個專題我們要做的是手部穩定度的遊戲。
兩手依照燈號的指示抬到正確的高度,並且要保持不動一下子才算成功,手不穩的人會玩很久喔。
這個遊戲為IR偵測高度的應用。
需要的小黑盤數量和應用的元件:
1. 小黑盤數: 2
2. 元件應用: LED、蜂鳴器、IR
專題內容
1. 專題下載 Projects02(.aia檔)
2. 遊戲開始後,兩個小黑盤會隨機顯示燈號(分成全紅、半紅、1/6紅),兩手依照燈號抬到相對應的高度(燈數越多手要抬越高)時,燈的顏色會變藍色。
當兩個小黑盤都變成藍色後(代表兩手都到了正確的高度),保持不動2秒就會進到下一回合遊戲。
請看以下示範影片。
3. 我們直接用「Projects01」另存為「Projects02」,App名稱為「專題02」。
「畫面編排」中,我們加進一個「計時器」,其他都不動。
兩個「計時器」的「計時間隔」分別是100和500。
4. 進到「畫面編排」,我們保留連線部分和「按鈕_開始」以上不變。
以下的部分會重新製作。
5. 將我們的遊戲分解成4個步驟:
1. 遊戲開始。
2. 兩個小黑盤隨機亮起代表高度的燈號。
3. 玩家依燈號指示將手抬到正確高度時燈的顏色會從紅色變成藍色。
4. 當兩手都到正確高度時會開始計時,2秒後進到下一回合。
6. 步驟1就是「開始」按紐的內容。
而程序「遊戲」的內容為步驟2: 兩個小黑盤隨機亮起代表高度的燈號。
1. 我們需要先加進幾個「變數」。
「變數」紅色和藍色代表顯示的燈號清單,從項目1到3分別代表1/6亮、一半亮或全亮的燈號。
「變數」高度是設定手要抬到的三種高度,數字越小代表要抬越高。
2. 接下來的程序「遊戲」分成遊戲回合>0和遊戲回合=0(遊戲結束)兩部分。
3. 遊戲回合>0要做的就是決定兩個小黑盤亮起的燈號。
以一號小黑盤來說,隨機從1到3中選一個設為變數「顏色1」。
當決定好變數「顏色1」後,同時也決定了要顯示的燈號和手要抬起的高度(設為變數「高度1」)。
4. 發出顯示燈號的命令。
5. 依同樣方式製作好二號小黑盤的部分。
6. 設變數「目標」為「真」,代表步驟2完成(兩個小黑盤亮起代表高度的燈號)也代表遊戲開始的狀態。
7. 啟用「計時器1」並將變數「維持時間」設為0。
「計時器1」的內容為步驟4。
8. 接下來是遊戲回合=0,就是遊戲結束時的部分。
我們想要在遊戲結束時發出0.5秒頻率1000的聲音。
7. 高度燈號亮起後就進到步驟3: 玩家依燈號指示將手抬到正確高度時燈的顏色會從紅色變成藍色。
我們以一號小黑盤為例,二號小黑盤是相同的。
1. 我們加進兩個「變數」。
變數「IR1」是從一號小黑盤接收到處理後的IR原始值。
變數「IR偵測1」是用來表示手有沒有抬到正確的高度。
2. 要進行步驟3的前提是步驟2已經完成,就是變數「目標」要為「真」。
3. 接下來是判斷手有沒有到 ”正確” 高度。
我們以指示高度上下30%做一個範圍,只要手在這個範圍裡就算是在 ”正確” 高度。
譬如說隨機選出來的指示高度是2000,那手在1400 ~ 2600都可以接受。
30%可以當作穩定度的指標,如果想要玩家能更穩定(更難)的完成遊戲,可以變成20%或更低。
4. 當手抬到正確高度時,發出變成藍色的命令,並設變數「IR偵測1」為「真」。
如果手離開正確高度的範圍,要再發出變成紅色的命令,並設變數「IR偵測1」為「假」。
注意,這時不管變成藍色或紅色,都要保持相同的燈號,燈號是由變數「顏色1」決定。
8. 「計時器1」的內容為步驟4: 當兩手都到正確高度時會開始計時,2秒後進到下一回合。
1. 「計時器1」的「計時間隔」為100,代表每0.1秒會執行一次以下的動作,就是每0.1秒看一下兩手有沒有在正確高度。
2. 當變數「偵測1」和「偵測2」都為「真」的時候,代表兩手都已經在正確高度了。
3. 這時我們讓變數「維持時間」隨著「計時器1」的啟用開始增加,每經過「計時器1」的「計時間隔」一次增加0.1,就是每0.1秒增加0.1。
4. 當變數「維持時間」變成2的時候,代表過了2秒。
如果希望玩家維持手在那個高度久一點,就可以將這個數字設多一點,譬如3之類的。
5. 到2秒時,先讓「計時器1」停止計時。
然後兩個小黑盤燈光都關掉,並將變數「目標」設為「假」代表這回合遊戲結束的狀態。
6. 再發出回合結束聲音的命令並啟用「計時器2」控制聲音的長度。
7. 將遊戲次數減1並開始另一回合遊戲。
8. 以上當變數「偵測1」和「偵測2」都為「真」的時候,變數「維持時間」就會隨著「計時器1」增加。
只要任一手離開正確高度時,變數「維持時間」就要歸0重新計算。
9. 以上就是我們專題2的內容說明。
大家可以試著自己改變一些參數,譬如高度、顏色、計時間隔等,看會產生什麼不同的效果。