1 00:00:01,372 --> 00:00:02,497 在上一堂課裡 2 00:00:02,497 --> 00:00:05,305 我們示範了如何使用繪圖函數和if述句 3 00:00:05,315 --> 00:00:07,165 讓一顆球從牆上反彈 4 00:00:07,264 --> 00:00:08,192 讓我們來複習 5 00:00:08,192 --> 00:00:12,007 首先,我們為球的位置和速度設立初始變異數 6 00:00:12,007 --> 00:00:15,064 然後,在繪圖函數裡,特別是那個 7 00:00:15,064 --> 00:00:17,224 在你的程式運行時不斷被叫出的程式 8 00:00:17,224 --> 00:00:20,731 我們將背景重新上色,然後在畫布上畫上一個圓形 9 00:00:20,731 --> 00:00:24,126 然後我們根據變異數的位置、時間 10 00:00:24,126 --> 00:00:27,468 與其互相影響的情形,來放置缺口 11 00:00:27,468 --> 00:00:28,905 現在,沒有 if 述句 12 00:00:28,905 --> 00:00:31,116 我們的球只會一直前進 13 00:00:31,116 --> 00:00:33,061 直到我們按下重新開始 14 00:00:33,061 --> 00:00:36,823 所以我們在下面這裡加入兩個 if 述句來確認並觀察 15 00:00:36,823 --> 00:00:39,844 球是在螢幕右側 16 00:00:39,844 --> 00:00:41,299 還是螢幕左側 17 00:00:41,679 --> 00:00:44,093 據此,我們將速度變換至正或是負 18 00:00:44,093 --> 00:00:46,172 因此球基本上會反彈回來 19 00:00:46,172 --> 00:00:49,806 所以現在我們只需要讓這個球永遠來回反彈 20 00:00:50,135 --> 00:00:51,355 所以這個蠻酷的 21 00:00:51,355 --> 00:00:52,620 而且用這個方法 22 00:00:52,620 --> 00:00:55,005 我們可以做出非常多很酷的動畫 23 00:00:55,005 --> 00:00:57,697 現在,我想要加入使用者互動到這個課程 24 00:00:57,697 --> 00:01:00,026 現在,這個課程就是一場TV秀 25 00:01:00,026 --> 00:01:01,614 如果你將它給一個朋友 26 00:01:01,614 --> 00:01:03,866 而且你的朋友不知道如何寫程式 27 00:01:04,182 --> 00:01:05,577 他們無法真的與它互動 28 00:01:05,577 --> 00:01:07,835 他們能做的事只有看,雖然也是蠻酷的 29 00:01:07,835 --> 00:01:10,533 不過如果他們能做什麼事情,這整件事會變得更酷 30 00:01:10,533 --> 00:01:13,574 所以,讓我們來給使用者一些方法來控制它 31 00:01:13,574 --> 00:01:15,335 記住稍早以前,我們學了 32 00:01:15,335 --> 00:01:20,032 兩個特別的全球性變異數叫做 “鼠標X” 和 "鼠標Y" 33 00:01:21,231 --> 00:01:22,708 這些變異數會產生數字 34 00:01:22,708 --> 00:01:26,100 告訴我們使用者滑鼠目前的所在位置 35 00:01:26,100 --> 00:01:28,597 這是一個將課程互動化很好的一個方法 36 00:01:28,597 --> 00:01:31,201 讓我們來看看可以如何使用它們 37 00:01:31,201 --> 00:01:34,571 我們應當將之使用在繪圖函數的某處 38 00:01:34,571 --> 00:01:36,763 因為他們是唯一的程式碼 39 00:01:36,763 --> 00:01:39,482 他們在程式進行時不斷的被叫出 40 00:01:39,902 --> 00:01:43,027 其餘在繪圖函數外的都只有被叫到一次 41 00:01:43,027 --> 00:01:44,572 當一個程式開始時 42 00:01:45,173 --> 00:01:48,104 所以,此時使用鼠標X 和鼠標Y是不合理的 43 00:01:48,104 --> 00:01:50,632 使用者沒有機會去跟他們互動 44 00:01:50,632 --> 00:01:56,969 現在,我們將圖裡的球往下移200個像素 45 00:01:56,969 --> 00:02:00,574 我們何不用鼠標Y取代它? 46 00:02:00,574 --> 00:02:02,533 因為那是Y位置,對吧? 47 00:02:02,980 --> 00:02:07,832 用這個方法可以獨立地將y位置 48 00:02:07,832 --> 00:02:10,101 讓我們來試試看 49 00:02:10,101 --> 00:02:11,661 只靠著將我的游標上下移動 50 00:02:11,661 --> 00:02:14,535 我可以改變球前進的路線 51 00:02:14,936 --> 00:02:16,200 蠻酷的 52 00:02:16,200 --> 00:02:19,906 但是,我也想要使用鼠標X,所以我該如何使用呢? 53 00:02:19,906 --> 00:02:22,068 我們何不直接製作另一顆球 54 00:02:22,068 --> 00:02:26,268 然後使那顆球行進上下相反的方向 55 00:02:26,268 --> 00:02:30,535 然後我們讓使用者控制它的“x”方位 56 00:02:30,535 --> 00:02:38,270 所以我們就是做了相反的事情,我們可以說橢圓滑鼠X 位於 50,50 57 00:02:39,967 --> 00:02:41,970 可以嗎?試試看吧! 58 00:02:41,970 --> 00:02:46,934 我已經控制這兩顆球以垂直的方向移動 59 00:02:48,731 --> 00:02:53,429 但是,我仍然不滿意,我想要給使用者更多控制能力 60 00:02:53,429 --> 00:02:57,865 我想要給使用者啟動第二顆球的能力 61 00:02:57,865 --> 00:03:02,100 僅僅按一下滑鼠,就使第二顆球存在 62 00:03:02,100 --> 00:03:04,201 然而,我需要找出方法 63 00:03:04,201 --> 00:03:07,769 如何分辨使用者正在按滑鼠 64 00:03:08,170 --> 00:03:12,874 令人感激的是,我們有一個特別的布林變異數可以使用 65 00:03:12,884 --> 00:03:18,336 名叫 《點擊滑鼠》。我們可以在 if 述句裡使用它 66 00:03:18,336 --> 00:03:22,137 讓我們來看看。這是我們的第二顆球 67 00:03:22,137 --> 00:03:26,920 所以我們可以說 "如果點擊滑鼠" 68 00:03:26,920 --> 00:03:31,545 然後我們會將圓形移到這裡 69 00:03:32,138 --> 00:03:34,440 所以這裡在做的事情是 70 00:03:34,440 --> 00:03:39,301 告訴這個程式我們只有在這是對的時畫這個圓 71 00:03:39,301 --> 00:03:42,924 那《點擊滑鼠》就只會在 72 00:03:42,924 --> 00:03:45,841 使用者按下滑鼠時有效 73 00:03:45,841 --> 00:03:50,002 我們來試試看,tada! 74 00:03:50,002 --> 00:03:53,367 所以我們現在可以只讓球在我按下時出現 75 00:03:53,367 --> 00:03:55,830 它在這個平行的宇宙縮放 76 00:03:55,830 --> 00:03:58,963 進入!進入!進入!這太美好了 77 00:04:00,096 --> 00:04:03,685 所以,這個變異數有趣的事情是 78 00:04:03,685 --> 00:04:07,634 《點擊滑鼠》會根據使用者做的事情改變 79 00:04:07,634 --> 00:04:09,582 而不是根據我們的程式做了什麼 80 00:04:09,582 --> 00:04:13,362 而因為繪圖函數被重複呼叫一次又一次, 81 00:04:13,362 --> 00:04:16,264 程式的輸出也會隨著時間而改變 82 00:04:16,264 --> 00:04:18,564 附帶著使用者的一些輸入 83 00:04:18,975 --> 00:04:22,264 混合著 if 述句跟《點擊滑鼠》的威力, 84 00:04:22,264 --> 00:04:23,861 你可以得到任何你想要的東西 85 00:04:23,861 --> 00:04:27,067 像是製作很棒的東西例如按鈕或者是繪圖程式 86 00:04:27,067 --> 00:04:28,136 好耶!