0:00:01.372,0:00:02.497 在上一堂課裡 0:00:02.497,0:00:05.305 我們示範了如何使用繪圖函數和if述句 0:00:05.315,0:00:07.165 讓一顆球從牆上反彈 0:00:07.264,0:00:08.192 讓我們來複習 0:00:08.192,0:00:12.007 首先,我們為球的位置和速度設立初始變異數 0:00:12.007,0:00:15.064 然後,在繪圖函數裡,特別是那個 0:00:15.064,0:00:17.224 在你的程式運行時不斷被叫出的程式 0:00:17.224,0:00:20.731 我們將背景重新上色,然後在畫布上畫上一個圓形 0:00:20.731,0:00:24.126 然後我們根據變異數的位置、時間 0:00:24.126,0:00:27.468 與其互相影響的情形,來放置缺口 0:00:27.468,0:00:28.905 現在,沒有 if 述句 0:00:28.905,0:00:31.116 我們的球只會一直前進 0:00:31.116,0:00:33.061 直到我們按下重新開始 0:00:33.061,0:00:36.823 所以我們在下面這裡加入兩個 if 述句來確認並觀察 0:00:36.823,0:00:39.844 球是在螢幕右側 0:00:39.844,0:00:41.299 還是螢幕左側 0:00:41.679,0:00:44.093 據此,我們將速度變換至正或是負 0:00:44.093,0:00:46.172 因此球基本上會反彈回來 0:00:46.172,0:00:49.806 所以現在我們只需要讓這個球永遠來回反彈 0:00:50.135,0:00:51.355 所以這個蠻酷的 0:00:51.355,0:00:52.620 而且用這個方法 0:00:52.620,0:00:55.005 我們可以做出非常多很酷的動畫 0:00:55.005,0:00:57.697 現在,我想要加入使用者互動到這個課程 0:00:57.697,0:01:00.026 現在,這個課程就是一場TV秀 0:01:00.026,0:01:01.614 如果你將它給一個朋友 0:01:01.614,0:01:03.866 而且你的朋友不知道如何寫程式 0:01:04.182,0:01:05.577 他們無法真的與它互動 0:01:05.577,0:01:07.835 他們能做的事只有看,雖然也是蠻酷的 0:01:07.835,0:01:10.533 不過如果他們能做什麼事情,這整件事會變得更酷 0:01:10.533,0:01:13.574 所以,讓我們來給使用者一些方法來控制它 0:01:13.574,0:01:15.335 記住稍早以前,我們學了 0:01:15.335,0:01:20.032 兩個特別的全球性變異數叫做 “鼠標X” 和 "鼠標Y" 0:01:21.231,0:01:22.708 這些變異數會產生數字 0:01:22.708,0:01:26.100 告訴我們使用者滑鼠目前的所在位置 0:01:26.100,0:01:28.597 這是一個將課程互動化很好的一個方法 0:01:28.597,0:01:31.201 讓我們來看看可以如何使用它們 0:01:31.201,0:01:34.571 我們應當將之使用在繪圖函數的某處 0:01:34.571,0:01:36.763 因為他們是唯一的程式碼 0:01:36.763,0:01:39.482 他們在程式進行時不斷的被叫出 0:01:39.902,0:01:43.027 其餘在繪圖函數外的都只有被叫到一次 0:01:43.027,0:01:44.572 當一個程式開始時 0:01:45.173,0:01:48.104 所以,此時使用鼠標X 和鼠標Y是不合理的 0:01:48.104,0:01:50.632 使用者沒有機會去跟他們互動 0:01:50.632,0:01:56.969 現在,我們將圖裡的球往下移200個像素 0:01:56.969,0:02:00.574 我們何不用鼠標Y取代它? 0:02:00.574,0:02:02.533 因為那是Y位置,對吧? 0:02:02.980,0:02:07.832 用這個方法可以獨立地將y位置 0:02:07.832,0:02:10.101 讓我們來試試看 0:02:10.101,0:02:11.661 只靠著將我的游標上下移動 0:02:11.661,0:02:14.535 我可以改變球前進的路線 0:02:14.936,0:02:16.200 蠻酷的 0:02:16.200,0:02:19.906 但是,我也想要使用鼠標X,所以我該如何使用呢? 0:02:19.906,0:02:22.068 我們何不直接製作另一顆球 0:02:22.068,0:02:26.268 然後使那顆球行進上下相反的方向 0:02:26.268,0:02:30.535 然後我們讓使用者控制它的“x”方位 0:02:30.535,0:02:38.270 所以我們就是做了相反的事情,我們可以說橢圓滑鼠X 位於 50,50 0:02:39.967,0:02:41.970 可以嗎?試試看吧! 0:02:41.970,0:02:46.934 我已經控制這兩顆球以垂直的方向移動 0:02:48.731,0:02:53.429 但是,我仍然不滿意,我想要給使用者更多控制能力 0:02:53.429,0:02:57.865 我想要給使用者啟動第二顆球的能力 0:02:57.865,0:03:02.100 僅僅按一下滑鼠,就使第二顆球存在 0:03:02.100,0:03:04.201 然而,我需要找出方法 0:03:04.201,0:03:07.769 如何分辨使用者正在按滑鼠 0:03:08.170,0:03:12.874 令人感激的是,我們有一個特別的布林變異數可以使用 0:03:12.884,0:03:18.336 名叫 《點擊滑鼠》。我們可以在 if 述句裡使用它 0:03:18.336,0:03:22.137 讓我們來看看。這是我們的第二顆球 0:03:22.137,0:03:26.920 所以我們可以說 "如果點擊滑鼠" 0:03:26.920,0:03:31.545 然後我們會將圓形移到這裡 0:03:32.138,0:03:34.440 所以這裡在做的事情是 0:03:34.440,0:03:39.301 告訴這個程式我們只有在這是對的時畫這個圓 0:03:39.301,0:03:42.924 那《點擊滑鼠》就只會在 0:03:42.924,0:03:45.841 使用者按下滑鼠時有效 0:03:45.841,0:03:50.002 我們來試試看,tada! 0:03:50.002,0:03:53.367 所以我們現在可以只讓球在我按下時出現 0:03:53.367,0:03:55.830 它在這個平行的宇宙縮放 0:03:55.830,0:03:58.963 進入!進入!進入!這太美好了 0:04:00.096,0:04:03.685 所以,這個變異數有趣的事情是 0:04:03.685,0:04:07.634 《點擊滑鼠》會根據使用者做的事情改變 0:04:07.634,0:04:09.582 而不是根據我們的程式做了什麼 0:04:09.582,0:04:13.362 而因為繪圖函數被重複呼叫一次又一次, 0:04:13.362,0:04:16.264 程式的輸出也會隨著時間而改變 0:04:16.264,0:04:18.564 附帶著使用者的一些輸入 0:04:18.975,0:04:22.264 混合著 if 述句跟《點擊滑鼠》的威力, 0:04:22.264,0:04:23.861 你可以得到任何你想要的東西 0:04:23.861,0:04:27.067 像是製作很棒的東西例如按鈕或者是繪圖程式 0:04:27.067,0:04:28.136 好耶!