[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.74,0:00:03.81,Default,,0000,0000,0000,,我們已經寫了這超酷的變數 Dialogue: 0,0:00:03.81,0:00:06.44,Default,,0000,0000,0000,,來控制溫斯頓的眼睛大小,那真的非常有用 Dialogue: 0,0:00:06.44,0:00:10.10,Default,,0000,0000,0000,,因為當我們想改變溫思頓雙眼的大小時\N它省了我們很多字數 Dialogue: 0,0:00:10.30,0:00:13.39,Default,,0000,0000,0000,,記得:之前我們需要重複寫入相同的數字四次 Dialogue: 0,0:00:13.39,0:00:15.97,Default,,0000,0000,0000,,去改變他眼睛的大小 Dialogue: 0,0:00:15.97,0:00:17.81,Default,,0000,0000,0000,,但是,我們還可以用變數去取代數字 Dialogue: 0,0:00:17.81,0:00:19.21,Default,,0000,0000,0000,,即使數字不是完全一樣嗎? Dialogue: 0,0:00:19.21,0:00:21.72,Default,,0000,0000,0000,,例如,如果我想移溫斯頓右一點又怎樣? Dialogue: 0,0:00:21.72,0:00:23.76,Default,,0000,0000,0000,,我可以改變這裏每一個x座標值 Dialogue: 0,0:00:23.76,0:00:25.57,Default,,0000,0000,0000,,但它們不全都一樣 Dialogue: 0,0:00:25.57,0:00:28.06,Default,,0000,0000,0000,,所以我不能只用某變數來取代它們全部 Dialogue: 0,0:00:28.06,0:00:29.14,Default,,0000,0000,0000,,但等一下! Dialogue: 0,0:00:29.14,0:00:30.86,Default,,0000,0000,0000,,一旦我指派變數一個數字, Dialogue: 0,0:00:30.86,0:00:33.94,Default,,0000,0000,0000,,我就可以使用那變數如那數字一樣 Dialogue: 0,0:00:33.94,0:00:37.16,Default,,0000,0000,0000,,這也表示我可以使用變數和數學表示式 Dialogue: 0,0:00:37.16,0:00:38.35,Default,,0000,0000,0000,,所以,這麼做如何: Dialogue: 0,0:00:38.35,0:00:41.08,Default,,0000,0000,0000,,來寫一個變數代表著溫斯頓的x座標位置 Dialogue: 0,0:00:41.08,0:00:43.42,Default,,0000,0000,0000,,稱它為var x Dialogue: 0,0:00:43.42,0:00:44.60,Default,,0000,0000,0000,,非常簡單 Dialogue: 0,0:00:44.60,0:00:48.04,Default,,0000,0000,0000,,好,現在給它溫斯頓臉部的x座標值 Dialogue: 0,0:00:48.04,0:00:51.45,Default,,0000,0000,0000,,他的臉會被畫在x座標200的位置 Dialogue: 0,0:00:51.45,0:00:54.42,Default,,0000,0000,0000,,所以,我們便說變數x得到200 Dialogue: 0,0:00:55.21,0:00:59.02,Default,,0000,0000,0000,,現在我可以用我的新變數x來取代這數字 Dialogue: 0,0:00:59.02,0:01:02.48,Default,,0000,0000,0000,,而當我改變x值時,它會移動溫斯頓的臉 Dialogue: 0,0:01:02.48,0:01:04.29,Default,,0000,0000,0000,,但不包括他的眼睛或嘴巴 Dialogue: 0,0:01:04.91,0:01:06.63,Default,,0000,0000,0000,,要修正那點 Dialogue: 0,0:01:07.43,0:01:10.86,Default,,0000,0000,0000,,我們要定義他眼睛和嘴巴的位置 Dialogue: 0,0:01:10.86,0:01:14.10,Default,,0000,0000,0000,,相對於他臉部的位置 Dialogue: 0,0:01:14.86,0:01:17.87,Default,,0000,0000,0000,,x座標將會成爲其它所有橢圓形的中心點 Dialogue: 0,0:01:17.87,0:01:22.64,Default,,0000,0000,0000,,所以他的臉會被畫在——那是200 Dialogue: 0,0:01:22.64,0:01:24.63,Default,,0000,0000,0000,,先來做他的左眼 Dialogue: 0,0:01:24.63,0:01:26.23,Default,,0000,0000,0000,,這橢圓形是他的左眼 Dialogue: 0,0:01:26.23,0:01:29.61,Default,,0000,0000,0000,,我們可以看到它正被畫在150上 Dialogue: 0,0:01:29.61,0:01:33.28,Default,,0000,0000,0000,,就在這裡,那是150 Dialogue: 0,0:01:33.28,0:01:37.61,Default,,0000,0000,0000,,而且我知道150是200再少50 Dialogue: 0,0:01:37.61,0:01:42.55,Default,,0000,0000,0000,,所以他的左眼應該位於他臉地位置,減去50 Dialogue: 0,0:01:42.55,0:01:47.66,Default,,0000,0000,0000,,也就是x,代表他臉的位置,- 50 Dialogue: 0,0:01:48.02,0:01:50.54,Default,,0000,0000,0000,,現在,若我改變這x座標的值 Dialogue: 0,0:01:50.54,0:01:53.25,Default,,0000,0000,0000,,他的眼睛便會跟著臉一起移動 Dialogue: 0,0:01:53.25,0:01:54.67,Default,,0000,0000,0000,,讓我們來做剩下的 Dialogue: 0,0:01:54.67,0:01:58.37,Default,,0000,0000,0000,,他的右眼正被畫在300上 Dialogue: 0,0:01:58.37,0:02:01.47,Default,,0000,0000,0000,,我可以看到這個在這裡是300 Dialogue: 0,0:02:01.47,0:02:05.87,Default,,0000,0000,0000,,而300,我知道,是比200再多100 Dialogue: 0,0:02:05.87,0:02:09.90,Default,,0000,0000,0000,,所以他的右眼應該位於他臉的位置加上100 Dialogue: 0,0:02:09.90,0:02:12.78,Default,,0000,0000,0000,,也就是x + 100 Dialogue: 0,0:02:12.78,0:02:14.24,Default,,0000,0000,0000,,現在就剩他的嘴巴了 Dialogue: 0,0:02:14.24,0:02:16.86,Default,,0000,0000,0000,,他的嘴巴正被畫在250上 Dialogue: 0,0:02:16.86,0:02:19.40,Default,,0000,0000,0000,,就在這裡,250的位置 Dialogue: 0,0:02:19.40,0:02:23.08,Default,,0000,0000,0000,,而250是200加50 Dialogue: 0,0:02:23.08,0:02:26.20,Default,,0000,0000,0000,,也就是在——噢,那是5 Dialogue: 0,0:02:26.20,0:02:30.98,Default,,0000,0000,0000,,也就是他臉的位置,x + 50 Dialogue: 0,0:02:30.98,0:02:33.35,Default,,0000,0000,0000,,現在——我要把這些塗鴉都擦掉 Dialogue: 0,0:02:33.35,0:02:38.22,Default,,0000,0000,0000,,每當我改變x值,它就會移動他的整張臉 Dialogue: 0,0:02:38.22,0:02:39.58,Default,,0000,0000,0000,,耶! Dialogue: 0,0:02:39.58,0:02:42.66,Default,,0000,0000,0000,,在你離開前,還有兩件關於變數的事你必須了解 Dialogue: 0,0:02:42.66,0:02:45.86,Default,,0000,0000,0000,,一旦你用var x做了一個變數 Dialogue: 0,0:02:45.86,0:02:48.52,Default,,0000,0000,0000,,你可以繼續賦予值給它,多少遍都可以 Dialogue: 0,0:02:48.52,0:02:51.50,Default,,0000,0000,0000,,所以,在給x一個198的值後 Dialogue: 0,0:02:51.50,0:02:54.95,Default,,0000,0000,0000,,我可以再說x得到300 Dialogue: 0,0:02:54.95,0:02:59.24,Default,,0000,0000,0000,,或x得到150 Dialogue: 0,0:02:59.24,0:03:01.22,Default,,0000,0000,0000,,從那時起,電腦就會視x Dialogue: 0,0:03:01.22,0:03:03.57,Default,,0000,0000,0000,,為任何我們最後賦予它的值 Dialogue: 0,0:03:03.57,0:03:05.42,Default,,0000,0000,0000,,在這情況下,就是150 Dialogue: 0,0:03:05.42,0:03:08.24,Default,,0000,0000,0000,,但是,你只需為每個變數寫一次var Dialogue: 0,0:03:08.24,0:03:12.79,Default,,0000,0000,0000,,相反地,在這裡,如果我寫var x得到150的話 Dialogue: 0,0:03:12.79,0:03:15.82,Default,,0000,0000,0000,,那就會創造出一個叫x的全新變數 Dialogue: 0,0:03:15.82,0:03:18.39,Default,,0000,0000,0000,,在程序上會完全消滅舊的變數x Dialogue: 0,0:03:18.39,0:03:21.56,Default,,0000,0000,0000,,而所有這些變數便會消失,到垃圾箱去 Dialogue: 0,0:03:21.56,0:03:24.62,Default,,0000,0000,0000,,之後,電腦只會使用那新變數 Dialogue: 0,0:03:24.62,0:03:28.13,Default,,0000,0000,0000,,有時你可以這麼做\N而不會有什麼恐怖事情發生在你身上 Dialogue: 0,0:03:28.13,0:03:29.85,Default,,0000,0000,0000,,但我不會這麼建議 Dialogue: 0,0:03:29.85,0:03:33.21,Default,,0000,0000,0000,,現在,我只要來做一次:var x得到150 Dialogue: 0,0:03:33.21,0:03:37.19,Default,,0000,0000,0000,,非常方便地,我可以把溫斯頓完全移出視窗外 Dialogue: 0,0:03:37.19,0:03:40.25,Default,,0000,0000,0000,,以便解說下一個重點 Dialogue: 0,0:03:40.25,0:03:44.59,Default,,0000,0000,0000,,每當你使變數等於某物 Dialogue: 0,0:03:44.59,0:03:47.45,Default,,0000,0000,0000,,那變數就處在一個快樂、安全的地方 Dialogue: 0,0:03:47.45,0:03:49.50,Default,,0000,0000,0000,,事實上,等號的左邊 Dialogue: 0,0:03:49.50,0:03:53.53,Default,,0000,0000,0000,,是唯一變數可以真切感受到自己存在的地方 Dialogue: 0,0:03:53.53,0:03:57.32,Default,,0000,0000,0000,,因為那是唯一一個電腦會把它視為變數的地方 Dialogue: 0,0:03:57.32,0:04:00.04,Default,,0000,0000,0000,,在其他任何位置,電腦只會假裝它是一個值 Dialogue: 0,0:04:00.04,0:04:02.38,Default,,0000,0000,0000,,所以即使我們做了像這樣的事: Dialogue: 0,0:04:02.38,0:04:06.04,Default,,0000,0000,0000,,var x得到10 Dialogue: 0,0:04:06.04,0:04:10.50,Default,,0000,0000,0000,,然後x得到x Dialogue: 0,0:04:10.50,0:04:11.73,Default,,0000,0000,0000,,唔,好混亂 Dialogue: 0,0:04:11.73,0:04:14.57,Default,,0000,0000,0000,,在左邊,我們已有x Dialogue: 0,0:04:14.57,0:04:17.50,Default,,0000,0000,0000,,一個自由思考、獨立的變數 Dialogue: 0,0:04:17.50,0:04:20.37,Default,,0000,0000,0000,,一個可以成長、改變的變數 Dialogue: 0,0:04:20.37,0:04:24.100,Default,,0000,0000,0000,,但,在右邊,只是,它就只是10 Dialogue: 0,0:04:24.100,0:04:26.52,Default,,0000,0000,0000,,真難過! Dialogue: 0,0:04:26.52,0:04:28.94,Default,,0000,0000,0000,,但那表示我們可以做些非常有用的東西像這樣: Dialogue: 0,0:04:28.94,0:04:33.54,Default,,0000,0000,0000,,我可以說x得到x + 1 Dialogue: 0,0:04:33.54,0:04:37.02,Default,,0000,0000,0000,,所以,在左邊,我們已使變數\N處在一個快樂、安全的地方 Dialogue: 0,0:04:37.02,0:04:40.41,Default,,0000,0000,0000,,而在右邊,我們有這個變數 Dialogue: 0,0:04:40.41,0:04:42.81,Default,,0000,0000,0000,,基本上據我們所知就是一個數字 Dialogue: 0,0:04:42.81,0:04:44.21,Default,,0000,0000,0000,,也就是10 Dialogue: 0,0:04:44.21,0:04:47.94,Default,,0000,0000,0000,,在腦中我們可以用x得到10加1來取代它 Dialogue: 0,0:04:47.94,0:04:51.58,Default,,0000,0000,0000,,意思就是x得到11 Dialogue: 0,0:04:51.58,0:04:54.32,Default,,0000,0000,0000,,所以,這整行基本上就是說x得到11 Dialogue: 0,0:04:54.32,0:04:57.80,Default,,0000,0000,0000,,從現在起,x值就是11 Dialogue: 0,0:04:57.80,0:05:01.33,Default,,0000,0000,0000,,來看看如果我們將另一個變數\N帶入方程式中會發生什麼事 Dialogue: 0,0:05:01.33,0:05:06.53,Default,,0000,0000,0000,,我要使var x得到10 Dialogue: 0,0:05:06.53,0:05:10.47,Default,,0000,0000,0000,,var y得到20 Dialogue: 0,0:05:10.47,0:05:12.42,Default,,0000,0000,0000,,x得到y—— Dialogue: 0,0:05:12.42,0:05:13.84,Default,,0000,0000,0000,,我的天阿—— Dialogue: 0,0:05:13.84,0:05:17.11,Default,,0000,0000,0000,,然後y得到7 Dialogue: 0,0:05:17.11,0:05:18.78,Default,,0000,0000,0000,,好,而我想知道的是 Dialogue: 0,0:05:18.78,0:05:22.10,Default,,0000,0000,0000,,x值是多少? Dialogue: 0,0:05:22.10,0:05:23.53,Default,,0000,0000,0000,,讓我們來找出答案 Dialogue: 0,0:05:23.53,0:05:27.18,Default,,0000,0000,0000,,在這一行,我們正在建立一個新變數x Dialogue: 0,0:05:27.18,0:05:29.17,Default,,0000,0000,0000,,並指派它10的數值 Dialogue: 0,0:05:29.17,0:05:31.78,Default,,0000,0000,0000,,所以x值是10 Dialogue: 0,0:05:31.78,0:05:33.91,Default,,0000,0000,0000,,在這一行,我們正在建立一個新變數y Dialogue: 0,0:05:33.91,0:05:35.78,Default,,0000,0000,0000,,並給它20的數值 Dialogue: 0,0:05:35.78,0:05:37.12,Default,,0000,0000,0000,,我們沒有對x做任何事 Dialogue: 0,0:05:37.12,0:05:39.40,Default,,0000,0000,0000,,所以x值仍然是10 Dialogue: 0,0:05:39.40,0:05:42.21,Default,,0000,0000,0000,,在這裡,我們在說x得到y Dialogue: 0,0:05:42.21,0:05:44.18,Default,,0000,0000,0000,,那蠻令人費解的,但如果你想一下 Dialogue: 0,0:05:44.18,0:05:46.28,Default,,0000,0000,0000,,我們知道在這些變數裏只有一個 Dialogue: 0,0:05:46.28,0:05:48.45,Default,,0000,0000,0000,,是在那快樂、安全的地方 Dialogue: 0,0:05:48.45,0:05:52.99,Default,,0000,0000,0000,,而另一個變數正被如數字一般地對待 Dialogue: 0,0:05:53.71,0:05:54.99,Default,,0000,0000,0000,,所以在這裡,我們可以在腦裡 Dialogue: 0,0:05:54.99,0:05:58.05,Default,,0000,0000,0000,,使y被它的值取替,也就是20 Dialogue: 0,0:05:58.05,0:06:01.76,Default,,0000,0000,0000,,且我們知道這行真正的意思是x得到20 Dialogue: 0,0:06:01.77,0:06:05.03,Default,,0000,0000,0000,,所以,在這x值為20 Dialogue: 0,0:06:05.03,0:06:08.82,Default,,0000,0000,0000,,接著,在這裡,這次我們的y正處在那快樂的位置 Dialogue: 0,0:06:08.82,0:06:10.42,Default,,0000,0000,0000,,其實不是真的那麼混亂 Dialogue: 0,0:06:10.42,0:06:12.83,Default,,0000,0000,0000,,因為我們在另一邊只是放了一個數字而已 Dialogue: 0,0:06:12.83,0:06:17.67,Default,,0000,0000,0000,,所以,問題於這:當我在這改變y值時 Dialogue: 0,0:06:17.67,0:06:20.81,Default,,0000,0000,0000,,會同時改變上面的x值嗎? Dialogue: 0,0:06:20.81,0:06:22.08,Default,,0000,0000,0000,,答案是: Dialogue: 0,0:06:22.70,0:06:25.95,Default,,0000,0000,0000,,不!不,不,不,不,不會! Dialogue: 0,0:06:25.95,0:06:28.45,Default,,0000,0000,0000,,你必須記住,在這裡, Dialogue: 0,0:06:28.45,0:06:31.76,Default,,0000,0000,0000,,y正被像是數字的方式對待 Dialogue: 0,0:06:31.76,0:06:34.62,Default,,0000,0000,0000,,電腦將會完全忽視它是一個變數 Dialogue: 0,0:06:34.62,0:06:36.27,Default,,0000,0000,0000,,忘記它可以更改的事實 Dialogue: 0,0:06:36.27,0:06:38.77,Default,,0000,0000,0000,,而它只會說: Dialogue: 0,0:06:38.77,0:06:42.53,Default,,0000,0000,0000,,「噢,y?你真正指的是20吧。」 Dialogue: 0,0:06:42.74,0:06:44.92,Default,,0000,0000,0000,,所以在這,我們只是在指派x一個數字 Dialogue: 0,0:06:44.92,0:06:46.74,Default,,0000,0000,0000,,而不是在指派一個變數 Dialogue: 0,0:06:46.74,0:06:50.32,Default,,0000,0000,0000,,我們正賦予y值,也就是20 Dialogue: 0,0:06:50.32,0:06:54.22,Default,,0000,0000,0000,,那意思是x值保持20 Dialogue: 0,0:06:54.22,0:06:58.37,Default,,0000,0000,0000,,即使我們在最後一行改了變數y的值 Dialogue: 0,0:06:59.93,0:07:02.13,Default,,0000,0000,0000,,呼!懂了嗎? Dialogue: 0,0:07:02.13,0:07:05.42,Default,,0000,0000,0000,,現在你們完全是變數專家了 Dialogue: 0,0:07:05.42,0:07:07.30,Default,,0000,0000,0000,,恭喜!