[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.37,0:00:02.50,Default,,0000,0000,0000,,在上一堂課裡 Dialogue: 0,0:00:02.50,0:00:05.30,Default,,0000,0000,0000,,我們示範了如何使用繪圖函數和if述句 Dialogue: 0,0:00:05.32,0:00:07.16,Default,,0000,0000,0000,,讓一顆球從牆上反彈 Dialogue: 0,0:00:07.26,0:00:08.19,Default,,0000,0000,0000,,讓我們來複習 Dialogue: 0,0:00:08.19,0:00:12.01,Default,,0000,0000,0000,,首先,我們為球的位置和速度設立初始變異數 Dialogue: 0,0:00:12.01,0:00:15.06,Default,,0000,0000,0000,,然後,在繪圖函數裡,特別是那個 Dialogue: 0,0:00:15.06,0:00:17.22,Default,,0000,0000,0000,,在你的程式運行時不斷被叫出的程式 Dialogue: 0,0:00:17.22,0:00:20.73,Default,,0000,0000,0000,,我們將背景重新上色,然後在畫布上畫上一個圓形 Dialogue: 0,0:00:20.73,0:00:24.13,Default,,0000,0000,0000,,然後我們根據變異數的位置、時間 Dialogue: 0,0:00:24.13,0:00:27.47,Default,,0000,0000,0000,,與其互相影響的情形,來放置缺口 Dialogue: 0,0:00:27.47,0:00:28.90,Default,,0000,0000,0000,,現在,沒有 if 述句 Dialogue: 0,0:00:28.90,0:00:31.12,Default,,0000,0000,0000,,我們的球只會一直前進 Dialogue: 0,0:00:31.12,0:00:33.06,Default,,0000,0000,0000,,直到我們按下重新開始 Dialogue: 0,0:00:33.06,0:00:36.82,Default,,0000,0000,0000,,所以我們在下面這裡加入兩個 if 述句來確認並觀察 Dialogue: 0,0:00:36.82,0:00:39.84,Default,,0000,0000,0000,,球是在螢幕右側 Dialogue: 0,0:00:39.84,0:00:41.30,Default,,0000,0000,0000,,還是螢幕左側 Dialogue: 0,0:00:41.68,0:00:44.09,Default,,0000,0000,0000,,據此,我們將速度變換至正或是負 Dialogue: 0,0:00:44.09,0:00:46.17,Default,,0000,0000,0000,,因此球基本上會反彈回來 Dialogue: 0,0:00:46.17,0:00:49.81,Default,,0000,0000,0000,,所以現在我們只需要讓這個球永遠來回反彈 Dialogue: 0,0:00:50.14,0:00:51.36,Default,,0000,0000,0000,,所以這個蠻酷的 Dialogue: 0,0:00:51.36,0:00:52.62,Default,,0000,0000,0000,,而且用這個方法 Dialogue: 0,0:00:52.62,0:00:55.00,Default,,0000,0000,0000,,我們可以做出非常多很酷的動畫 Dialogue: 0,0:00:55.00,0:00:57.70,Default,,0000,0000,0000,,現在,我想要加入使用者互動到這個課程 Dialogue: 0,0:00:57.70,0:01:00.03,Default,,0000,0000,0000,,現在,這個課程就是一場TV秀 Dialogue: 0,0:01:00.03,0:01:01.61,Default,,0000,0000,0000,,如果你將它給一個朋友 Dialogue: 0,0:01:01.61,0:01:03.87,Default,,0000,0000,0000,,而且你的朋友不知道如何寫程式 Dialogue: 0,0:01:04.18,0:01:05.58,Default,,0000,0000,0000,,他們無法真的與它互動 Dialogue: 0,0:01:05.58,0:01:07.84,Default,,0000,0000,0000,,他們能做的事只有看,雖然也是蠻酷的 Dialogue: 0,0:01:07.84,0:01:10.53,Default,,0000,0000,0000,,不過如果他們能做什麼事情,這整件事會變得更酷 Dialogue: 0,0:01:10.53,0:01:13.57,Default,,0000,0000,0000,,所以,讓我們來給使用者一些方法來控制它 Dialogue: 0,0:01:13.57,0:01:15.34,Default,,0000,0000,0000,,記住稍早以前,我們學了 Dialogue: 0,0:01:15.34,0:01:20.03,Default,,0000,0000,0000,,兩個特別的全球性變異數叫做 “鼠標X” 和 "鼠標Y" Dialogue: 0,0:01:21.23,0:01:22.71,Default,,0000,0000,0000,,這些變異數會產生數字 Dialogue: 0,0:01:22.71,0:01:26.10,Default,,0000,0000,0000,,告訴我們使用者滑鼠目前的所在位置 Dialogue: 0,0:01:26.10,0:01:28.60,Default,,0000,0000,0000,,這是一個將課程互動化很好的一個方法 Dialogue: 0,0:01:28.60,0:01:31.20,Default,,0000,0000,0000,,讓我們來看看可以如何使用它們 Dialogue: 0,0:01:31.20,0:01:34.57,Default,,0000,0000,0000,,我們應當將之使用在繪圖函數的某處 Dialogue: 0,0:01:34.57,0:01:36.76,Default,,0000,0000,0000,,因為他們是唯一的程式碼 Dialogue: 0,0:01:36.76,0:01:39.48,Default,,0000,0000,0000,,他們在程式進行時不斷的被叫出 Dialogue: 0,0:01:39.90,0:01:43.03,Default,,0000,0000,0000,,其餘在繪圖函數外的都只有被叫到一次 Dialogue: 0,0:01:43.03,0:01:44.57,Default,,0000,0000,0000,,當一個程式開始時 Dialogue: 0,0:01:45.17,0:01:48.10,Default,,0000,0000,0000,,所以,此時使用鼠標X 和鼠標Y是不合理的 Dialogue: 0,0:01:48.10,0:01:50.63,Default,,0000,0000,0000,,使用者沒有機會去跟他們互動 Dialogue: 0,0:01:50.63,0:01:56.97,Default,,0000,0000,0000,,現在,我們將圖裡的球往下移200個像素 Dialogue: 0,0:01:56.97,0:02:00.57,Default,,0000,0000,0000,,我們何不用鼠標Y取代它? Dialogue: 0,0:02:00.57,0:02:02.53,Default,,0000,0000,0000,,因為那是Y位置,對吧? Dialogue: 0,0:02:02.98,0:02:07.83,Default,,0000,0000,0000,,用這個方法可以獨立地將y位置 Dialogue: 0,0:02:07.83,0:02:10.10,Default,,0000,0000,0000,,讓我們來試試看 Dialogue: 0,0:02:10.10,0:02:11.66,Default,,0000,0000,0000,,只靠著將我的游標上下移動 Dialogue: 0,0:02:11.66,0:02:14.54,Default,,0000,0000,0000,,我可以改變球前進的路線 Dialogue: 0,0:02:14.94,0:02:16.20,Default,,0000,0000,0000,,蠻酷的 Dialogue: 0,0:02:16.20,0:02:19.91,Default,,0000,0000,0000,,但是,我也想要使用鼠標X,所以我該如何使用呢? Dialogue: 0,0:02:19.91,0:02:22.07,Default,,0000,0000,0000,,我們何不直接製作另一顆球 Dialogue: 0,0:02:22.07,0:02:26.27,Default,,0000,0000,0000,,然後使那顆球行進上下相反的方向 Dialogue: 0,0:02:26.27,0:02:30.54,Default,,0000,0000,0000,,然後我們讓使用者控制它的“x”方位 Dialogue: 0,0:02:30.54,0:02:38.27,Default,,0000,0000,0000,,所以我們就是做了相反的事情,我們可以說橢圓滑鼠X 位於 50,50 Dialogue: 0,0:02:39.97,0:02:41.97,Default,,0000,0000,0000,,可以嗎?試試看吧! Dialogue: 0,0:02:41.97,0:02:46.93,Default,,0000,0000,0000,,我已經控制這兩顆球以垂直的方向移動 Dialogue: 0,0:02:48.73,0:02:53.43,Default,,0000,0000,0000,,但是,我仍然不滿意,我想要給使用者更多控制能力 Dialogue: 0,0:02:53.43,0:02:57.86,Default,,0000,0000,0000,,我想要給使用者啟動第二顆球的能力 Dialogue: 0,0:02:57.86,0:03:02.10,Default,,0000,0000,0000,,僅僅按一下滑鼠,就使第二顆球存在 Dialogue: 0,0:03:02.10,0:03:04.20,Default,,0000,0000,0000,,然而,我需要找出方法 Dialogue: 0,0:03:04.20,0:03:07.77,Default,,0000,0000,0000,,如何分辨使用者正在按滑鼠 Dialogue: 0,0:03:08.17,0:03:12.87,Default,,0000,0000,0000,,令人感激的是,我們有一個特別的布林變異數可以使用 Dialogue: 0,0:03:12.88,0:03:18.34,Default,,0000,0000,0000,,名叫 《點擊滑鼠》。我們可以在 if 述句裡使用它 Dialogue: 0,0:03:18.34,0:03:22.14,Default,,0000,0000,0000,,讓我們來看看。這是我們的第二顆球 Dialogue: 0,0:03:22.14,0:03:26.92,Default,,0000,0000,0000,,所以我們可以說 "如果點擊滑鼠" Dialogue: 0,0:03:26.92,0:03:31.54,Default,,0000,0000,0000,,然後我們會將圓形移到這裡 Dialogue: 0,0:03:32.14,0:03:34.44,Default,,0000,0000,0000,,所以這裡在做的事情是 Dialogue: 0,0:03:34.44,0:03:39.30,Default,,0000,0000,0000,,告訴這個程式我們只有在這是對的時畫這個圓 Dialogue: 0,0:03:39.30,0:03:42.92,Default,,0000,0000,0000,,那《點擊滑鼠》就只會在 Dialogue: 0,0:03:42.92,0:03:45.84,Default,,0000,0000,0000,,使用者按下滑鼠時有效 Dialogue: 0,0:03:45.84,0:03:50.00,Default,,0000,0000,0000,,我們來試試看,tada! Dialogue: 0,0:03:50.00,0:03:53.37,Default,,0000,0000,0000,,所以我們現在可以只讓球在我按下時出現 Dialogue: 0,0:03:53.37,0:03:55.83,Default,,0000,0000,0000,,它在這個平行的宇宙縮放 Dialogue: 0,0:03:55.83,0:03:58.96,Default,,0000,0000,0000,,進入!進入!進入!這太美好了 Dialogue: 0,0:04:00.10,0:04:03.68,Default,,0000,0000,0000,,所以,這個變異數有趣的事情是 Dialogue: 0,0:04:03.68,0:04:07.63,Default,,0000,0000,0000,,《點擊滑鼠》會根據使用者做的事情改變 Dialogue: 0,0:04:07.63,0:04:09.58,Default,,0000,0000,0000,,而不是根據我們的程式做了什麼 Dialogue: 0,0:04:09.58,0:04:13.36,Default,,0000,0000,0000,,而因為繪圖函數被重複呼叫一次又一次, Dialogue: 0,0:04:13.36,0:04:16.26,Default,,0000,0000,0000,,程式的輸出也會隨著時間而改變 Dialogue: 0,0:04:16.26,0:04:18.56,Default,,0000,0000,0000,,附帶著使用者的一些輸入 Dialogue: 0,0:04:18.98,0:04:22.26,Default,,0000,0000,0000,,混合著 if 述句跟《點擊滑鼠》的威力, Dialogue: 0,0:04:22.26,0:04:23.86,Default,,0000,0000,0000,,你可以得到任何你想要的東西 Dialogue: 0,0:04:23.86,0:04:27.07,Default,,0000,0000,0000,,像是製作很棒的東西例如按鈕或者是繪圖程式 Dialogue: 0,0:04:27.07,0:04:28.14,Default,,0000,0000,0000,,好耶!