[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.28,0:00:03.68,Default,,0000,0000,0000,,記得動畫製作的三個步驟嗎? Dialogue: 0,0:00:03.68,0:00:06.59,Default,,0000,0000,0000,,首先在繪圖迴圈以外,我們寫一些變數 Dialogue: 0,0:00:06.59,0:00:09.72,Default,,0000,0000,0000,,然後在繪圖迴圈以内,我們利用\N那些變數於繪圖程式碼裏 Dialogue: 0,0:00:09.72,0:00:12.04,Default,,0000,0000,0000,,我們有個變數來代表 x 位置 Dialogue: 0,0:00:12.04,0:00:14.40,Default,,0000,0000,0000,,一個代表 y 位置,一個代表球 ballWidth Dialogue: 0,0:00:14.40,0:00:16.02,Default,,0000,0000,0000,,還有一個代表 ballHeight Dialogue: 0,0:00:16.02,0:00:17.63,Default,,0000,0000,0000,,然後,在最後面 Dialogue: 0,0:00:17.63,0:00:20.00,Default,,0000,0000,0000,,我們逐漸改變那些變數 Dialogue: 0,0:00:20.00,0:00:22.77,Default,,0000,0000,0000,,x 將成爲 x 舊的值,加 1 Dialogue: 0,0:00:22.77,0:00:24.70,Default,,0000,0000,0000,,所以它每次將會增量 Dialogue: 0,0:00:24.70,0:00:27.80,Default,,0000,0000,0000,,y 將成爲 y 舊的值,減 2 Dialogue: 0,0:00:27.80,0:00:29.80,Default,,0000,0000,0000,,所以 y 每次將會減量 Dialogue: 0,0:00:29.80,0:00:35.41,Default,,0000,0000,0000,,ballWidth 會得到\NballWidth 舊的值,乘 0.99 Dialogue: 0,0:00:35.41,0:00:39.41,Default,,0000,0000,0000,,皆因 0.99 少於 1,我們將會看到球寬縮小 Dialogue: 0,0:00:39.41,0:00:44.90,Default,,0000,0000,0000,,而 ballHeight 會被定為\NballHeight 舊的值,除 1.01 Dialogue: 0,0:00:45.29,0:00:47.96,Default,,0000,0000,0000,,皆因大於 1,我們也將看到球寬縮小 Dialogue: 0,0:00:47.96,0:00:53.01,Default,,0000,0000,0000,,若我按 Restart,你能看到\N這顆球全部的屬性都在改變 Dialogue: 0,0:00:53.82,0:00:56.55,Default,,0000,0000,0000,,如果你看看這四行程式碼 Dialogue: 0,0:00:56.55,0:00:58.84,Default,,0000,0000,0000,,你會發現它們全都跟隨著一個相似的模式 Dialogue: 0,0:00:58.84,0:01:01.27,Default,,0000,0000,0000,,我們有一個變數,然後一個等號 Dialogue: 0,0:01:01.27,0:01:06.21,Default,,0000,0000,0000,,然後同一個變數,一些運算子 —\N加、減、乘、除 — Dialogue: 0,0:01:06.53,0:01:08.59,Default,,0000,0000,0000,,還有一些數字 Dialogue: 0,0:01:08.59,0:01:11.77,Default,,0000,0000,0000,,這模式在程式設計裡實在是太常見 Dialogue: 0,0:01:11.77,0:01:14.46,Default,,0000,0000,0000,,而程式設計師又非常懶惰,\N所以他們決定: Dialogue: 0,0:01:14.46,0:01:16.78,Default,,0000,0000,0000,,嘿!既然我們經常地用這模式, Dialogue: 0,0:01:16.78,0:01:19.05,Default,,0000,0000,0000,,那該有個更簡單的方法來寫它吧? Dialogue: 0,0:01:19.05,0:01:22.01,Default,,0000,0000,0000,,所以他們造了一個捷徑,\N而那捷徑是這樣的: Dialogue: 0,0:01:22.01,0:01:24.53,Default,,0000,0000,0000,,與其寫 x 得到 x 加 1 Dialogue: 0,0:01:24.53,0:01:29.33,Default,,0000,0000,0000,,我可以寫 x += 1,懂嗎? Dialogue: 0,0:01:29.33,0:01:35.97,Default,,0000,0000,0000,,與其寫 y 得到 y 減 2,\N我可以寫 y -= 2 Dialogue: 0,0:01:36.67,0:01:41.26,Default,,0000,0000,0000,,與其寫 ballWidth 得到 ballWidth 乘 0.99 Dialogue: 0,0:01:41.26,0:01:47.69,Default,,0000,0000,0000,,我可以寫 —你猜對了— \NballWidth *= 0.99 Dialogue: 0,0:01:48.20,0:01:52.86,Default,,0000,0000,0000,,最後,與其寫 ballHeight 得到\NballHeight 除 1.01 Dialogue: 0,0:01:52.86,0:01:57.37,Default,,0000,0000,0000,,我們可以寫 ballHeight /= 1.01 Dialogue: 0,0:01:57.37,0:01:59.28,Default,,0000,0000,0000,,而這些全部,它的作用是 Dialogue: 0,0:01:59.28,0:02:01.04,Default,,0000,0000,0000,,它拿變數的值 Dialogue: 0,0:02:01.04,0:02:03.50,Default,,0000,0000,0000,,所以 ballWidth,還有這運算子 Dialogue: 0,0:02:03.50,0:02:06.24,Default,,0000,0000,0000,,然後將它乘以 0.99 Dialogue: 0,0:02:06.24,0:02:09.29,Default,,0000,0000,0000,,所以它便會是 ballWidth x 0.99 Dialogue: 0,0:02:09.29,0:02:12.00,Default,,0000,0000,0000,,然後將它存回 ballWidth 這變數裡 Dialogue: 0,0:02:12.00,0:02:13.76,Default,,0000,0000,0000,,如果我按 Restart 你將看到 Dialogue: 0,0:02:13.76,0:02:15.92,Default,,0000,0000,0000,,我們的動畫跟之前的一摸一樣 Dialogue: 0,0:02:16.03,0:02:18.31,Default,,0000,0000,0000,,而你現在也能一起懶惰!