0:00:01.056,0:00:04.067 讓我們繼續探索,我們還能利用物件做什麼。 0:00:04.067,0:00:07.779 我們回到程式設計裡使用函數的教程。 0:00:08.339,0:00:11.839 這程式有「繪製溫斯頓」的函數,[br]它知道如何繪製溫斯頓, 0:00:11.839,0:00:14.588 於所指定的 X 和 Y 座標。 0:00:14.678,0:00:18.128 在這裡,我們呼叫「繪製溫斯頓」四次。 0:00:18.128,0:00:21.043 每次以不同組合的 X 和 Y 坐標。 0:00:21.504,0:00:25.889 當我看到這四組「繪製溫斯頓」的呼叫程式, 0:00:25.911,0:00:31.030 是如此相似時,我就想到更方便的方式是, 0:00:31.030,0:00:35.802 如果我們能使用一個循環圈,[br]然後在循環圈裡只叫它一次, 0:00:35.802,0:00:39.541 改變這 X 和 Y 每次循環迭代裡的座標。 0:00:39.861,0:00:44.361 要做到這個,我們需要找到[br]一種方法來儲存這些 X 和 Y 位置, 0:00:44.361,0:00:47.671 如此才能於一個陣列裡循環它。 0:00:47.671,0:00:51.932 目前有兩組的值,所以我們可以有兩個陣列, 0:00:51.932,0:00:56.030 一個給 X 的座標和一個給 Y 的座標。 0:00:56.030,0:01:01.262 X 的座標可能是 99、[br]294、101、和 294。 0:01:02.281,0:01:08.812 而 Y 的座標我們會有[br]117,117,316、316。 0:01:09.564,0:01:14.472 好了,現在我們可以循環那些[br]有著我們循環變數 i = 0; 0:01:14.472,0:01:18.672 i < x 位置點長度; i++。 0:01:18.672,0:01:22.302 如此,我們會按序循環每個[br]在 x 位置的元素,我們會編寫: 0:01:22.302,0:01:29.382 「繪製溫斯頓(x 位置 [i],[br]y 位置 [i])」; 0:01:30.703,0:01:34.564 好,讓我們來看看利用刪除是否可行... 0:01:34.564,0:01:36.172 好棒,那是可行的。 0:01:36.172,0:01:40.812 現在我們只要呼叫這個,只用這行代碼,[br]來編輯「繪製溫斯頓」 0:01:40.812,0:01:43.291 但它就會寫在每個 0:01:43.291,0:01:45.412 「x 位置」陣列的位置裡。 0:01:45.412,0:01:49.057 我們可以在這裡添加更多的值,例如 10, 0:01:49.057,0:01:57.816 那麼我們加 1,然後 1,[br]然後 1,然後 100,然後 1。 0:01:58.482,0:02:03.106 現在它看起來稍微有點亂。我不喜歡這樣, 0:02:03.106,0:02:08.057 因為這樣很難看得出來哪些 X 與哪些 Y 相關聯。 0:02:11.018,0:02:14.759 我要能一眼就看清楚 X 和 Y 的配對組合。 0:02:14.759,0:02:19.798 而不必確保我有完美地上下對齊它們, 0:02:19.798,0:02:21.089 例如,像是這樣。 0:02:22.309,0:02:26.979 所以,我要找出不同的方式來儲存的這些位置。 0:02:26.979,0:02:30.759 一個做法是,我們可以將它們儲存為物件。 0:02:30.760,0:02:34.969 想想看,每個位置都有兩位信息: 0:02:34.969,0:02:39.808 就是 X 和 Y。所以,我們可以有[br]一個具有 X 和 Y 屬性的物件, 0:02:39.808,0:02:44.758 然後我們有一個包含所有 [br]X 和 Y 位置的陣列物件。 0:02:44.758,0:02:45.958 讓我們就這麼做。 0:02:45.958,0:02:51.129 將變數位置相等於陣列。 0:02:51.129,0:02:56.110 但是,每個元素並不是一個號碼,[br]而是一個物件。 0:02:56.365,0:03:00.329 我們有了我們的大括號,然後我們說, 0:03:00.329,0:03:05.240 X: 99,Y: 117。 0:03:05.319,0:03:08.921 好,我們現在有了其中一個位置在這裡。 0:03:08.921,0:03:14.000 然後在這裡我們再添加一個。 0:03:14.570,0:03:19.071 X 應該是 294,117, 0:03:19.071,0:03:24.271 第三個會是 101,316, 0:03:25.481,0:03:31.339 然後最後一個是294和316。 0:03:31.671,0:03:34.881 好,現在我們有了一個陣列物件, 0:03:34.881,0:03:38.280 而且每個物件都有,[br]X 和 Y 的屬性在裡面。 0:03:38.470,0:03:44.712 在我們的循環圈裡,我們將更改[br]它通過「位置點長度」的迭代。 0:03:44.712,0:03:49.261 然後,我們會傳遞物件。 0:03:49.261,0:03:54.008 現在它正傳遞所有的物件,[br]但我們想要傳遞 X 和 Y, 0:03:54.008,0:03:59.098 所以我們需要[br]位置 [i] 點 x 和位置 [i] 點 y。 0:03:59.195,0:04:00.692 成功! 0:04:00.692,0:04:04.201 現在,我們可以刪除這些舊的陣列集群。 0:04:04.563,0:04:09.725 太好了,這樣看起來就整齊多了,[br]代碼更容易閱讀。 0:04:09.725,0:04:12.928 不論何時,只要有容易閱讀的代碼[br]都是較好的。 0:04:13.178,0:04:16.740 這樣也會更容易做添加。[br]所以,如果我要再添加一個, 0:04:16.740,0:04:23.450 我只需同時添加一對,[br]我們可以說 X 是 200,Y 是 200, 0:04:23.450,0:04:25.672 中間在放一個小溫斯頓。 0:04:26.539,0:04:27.597 很酷。 0:04:27.930,0:04:31.299 現在,我要教你一些比這個更炫的東西。 0:04:31.811,0:04:36.761 請注意,我們的函數目前接受兩個位數, 0:04:37.221,0:04:39.150 然後使用這兩個數字。 0:04:39.150,0:04:42.160 我們可以更改我們的函數,[br]讓它期待一個物件, 0:04:42.160,0:04:45.261 然後它在從該物件裡取得 X 和 Y。 0:04:45.261,0:04:49.572 這意味著,在這裡我們可以只傳遞物件。 0:04:49.741,0:04:51.169 讓我們來試試。 0:04:51.169,0:04:54.071 我們傳遞了物件,現在就壞了。 0:04:54.071,0:04:57.680 那是因為我們的函數,仍然是期待兩個物件, 0:04:57.680,0:05:00.526 而它只獲得一個。所以我們將它更改為 0:05:00.526,0:05:05.281 它將獲得「臉位置」。[br]現在,我們接到了一個錯誤訊息, 0:05:05.281,0:05:10.002 它表示「臉X」未被定義。[br]那是因為之前我們是以論據在傳遞「臉X」, 0:05:10.002,0:05:12.933 但目前它並不存在,我們只會得到一個物件。 0:05:12.933,0:05:19.501 所以,我們要做的,就是將物件裡X的位置, 0:05:19.501,0:05:21.264 儲存在「臉X」的變數裡。 0:05:21.264,0:05:24.952 我們有這個物件,[br]我們知道這個物件裡有一個X屬性, 0:05:24.952,0:05:28.463 所以我們只要將它存儲在「臉X」的變數裡。 0:05:28.463,0:05:33.762 我們可以對 Y 做同樣的事情,[br]這樣「臉 Y 等於臉位置點 y」。 0:05:33.762,0:05:35.069 成功! 0:05:35.069,0:05:38.307 你也知道,其餘的那些函數[br]會使用「臉X」和「臉Y」。 0:05:38.307,0:05:39.972 我們必須確保拼寫的正確性, 0:05:39.972,0:05:42.059 如果寫的是 xx,,就會無效。 0:05:42.059,0:05:48.153 因為那與我們陣列物件裡的並不一致。[br]所以它需要能相配。 0:05:48.661,0:05:52.013 這樣就滿整齊的。現在你可以有陣列物件, 0:05:52.013,0:05:54.420 你可以有附帶物件的函數。 0:05:54.420,0:05:58.342 你會發現你的程式,變的非常強大, 0:05:58.342,0:06:00.780 因為它們數據的構建方式。 0:06:00.780,0:06:04.192 特別是因為它常常將 X 和 Y 配對。 0:06:04.192,0:06:05.460 我想你會發現, 0:06:05.460,0:06:09.292 它們在這兒的繪製及動畫程式裡,特別好用。 0:06:09.292,0:06:11.461 所以,快試試吧![br]祝你玩得開心!