目錄 購物車 {{currentCart.getItemCount()}}

oplate App 分享區

 

銀髮樂活  /  職能治療  /  運動健身  /  程式教育  /  app客製化

 

程式教育 > 專題 > 專題02

專題簡介

這個專題我們要做的是手部穩定度的遊戲。
兩手依照燈號的指示抬到正確的高度,並且要保持不動一下子才算成功,手不穩的人會玩很久喔。
這個遊戲為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的內容說明。
     大家可以試著自己改變一些參數,譬如高度、顏色、計時間隔等,看會產生什麼不同的效果。