[NXC] 小程式分享 – 彈跳球 V1.0

一個利用NXC撰寫的簡易彈跳球範例,在NXT螢幕上輸出一個球彈來彈去。

請看影片:

程式碼:

task main()
{
       int ball_x = Random(61)+20;         // 隨機產生球的起始x座標
       int ball_y = Random(31)+20;         // 隨機產生球的起始y座標
       int del_x = 1;                                       // 球的方向向量
       int del_y = 1;
       CircleOut(ball_x,ball_y, 2);               // 在螢幕上輸出球 o (半徑為2的圓) 
       while(true)
       {
              ClearScreen();                                // 清掉舊位置上的球
              ball_x = ball_x + del_x;              // 移到下一個位置
              ball_y = ball_y + del_y;             
              CircleOut(ball_x,ball_y, 2);        // 在新的位置輸出球
              if( ball_x <= 2 || ball_x>=96)    // 若打到邊界則反彈
              {
                     del_x = del_x*-1;
                     PlayTone(440,1);
              }
              if( ball_y <= 5 || ball_y >= 61)
              {
                     del_y = del_y*-1;
                     PlayTone(440,1);
               }
               Wait(40);
      }
}

事實上,這個程式用NXT-G寫也是ok的,但是就不會那麼精簡了…
下週上課時拿來給學生當做挑戰題好了

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *