一個利用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的,但是就不會那麼精簡了…
下週上課時拿來給學生當做挑戰題好了