[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.30,0:00:03.68,Default,,0000,0000,0000,,움직이는 동작 애니메이션을 만들기 위한 \N3가지 단계를 기억하시나요? Dialogue: 0,0:00:03.68,0:00:07.13,Default,,0000,0000,0000,,draw loop 밖에 변수를 선언함으로써 시작합니다. Dialogue: 0,0:00:07.13,0:00:10.06,Default,,0000,0000,0000,,그리고 draw loop 안에서 \N그 변수들을 코드에 사용합니다 Dialogue: 0,0:00:10.06,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.80,Default,,0000,0000,0000,,그리고 ballheight(공의 높이)위치에 대한 \N변수를 각각 가집니다 Dialogue: 0,0:00:16.80,0:00:18.41,Default,,0000,0000,0000,,코드 마지막에 Dialogue: 0,0:00:18.41,0:00:20.02,Default,,0000,0000,0000,,매번 루프마다 조금씩 바꾸어줍니다 Dialogue: 0,0:00:20.02,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는 0.99 의 곱으로 변화할 것입니다 Dialogue: 0,0:00:35.41,0:00:39.41,Default,,0000,0000,0000,,0.99는 1보다 작으므로 \Nball Width가 작아지는 것을 볼 수 있습니다 Dialogue: 0,0:00:39.41,0:00:42.72,Default,,0000,0000,0000,,그리고 ball Height는 초기화된 변수 ball Height에서 Dialogue: 0,0:00:42.72,0:00:45.50,Default,,0000,0000,0000,,1.01로 나누고 이것은 1보다 크므로 Dialogue: 0,0:00:45.50,0:00:48.35,Default,,0000,0000,0000,,ball Height가 감소하는것을 볼 수있습니다 Dialogue: 0,0:00:48.35,0:00:50.09,Default,,0000,0000,0000,,그래서 Restart 를 누르면 Dialogue: 0,0:00:50.09,0:00:53.82,Default,,0000,0000,0000,,공의 속성들이 변하는 것을 볼 수 있습니다 Dialogue: 0,0:00:53.82,0:00:56.61,Default,,0000,0000,0000,,그러므로 이러한 4개의 줄 코드를 보면 Dialogue: 0,0:00:56.61,0:00:59.25,Default,,0000,0000,0000,,비슷한 패턴을 따른다는 것을 알 수 있는데요 Dialogue: 0,0:00:59.25,0:01:02.41,Default,,0000,0000,0000,,여기서 변수를 가졌고 = 기호를 가졌습니다 Dialogue: 0,0:01:02.41,0:01:06.57,Default,,0000,0000,0000,,그리고 같은 변수와 연산기호\N(더하기 빼기 곱하기 나누기)를 가졌고 Dialogue: 0,0:01:06.57,0:01:08.85,Default,,0000,0000,0000,,그리고 어떤 특정한 수를 가졌습니다 Dialogue: 0,0:01:08.85,0:01:11.95,Default,,0000,0000,0000,,이러한 패턴은 프로그래밍에서 아주 흔합니다 Dialogue: 0,0:01:11.95,0:01:14.64,Default,,0000,0000,0000,,프로그래머들은 너무 게으르기 때문에 Dialogue: 0,0:01:14.64,0:01:16.95,Default,,0000,0000,0000,,'이봐 이런 패턴을 너무 많이 사용하잖아' Dialogue: 0,0:01:16.95,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:36.69,Default,,0000,0000,0000,,그리고 y= y-2 대신에 y-=2 라고 표현합니다 Dialogue: 0,0:01:36.69,0:01:41.54,Default,,0000,0000,0000,,그리고 ballwidth = ballwidth*0.99 대신에 Dialogue: 0,0:01:41.54,0:01:48.24,Default,,0000,0000,0000,,예상하셨겠지만 ballwidth*=0.99로 합니다 Dialogue: 0,0:01:48.24,0:01:49.57,Default,,0000,0000,0000,,마지막으로 Dialogue: 0,0:01:49.57,0:01:53.66,Default,,0000,0000,0000,,ballheight = ballheight/1.01 대신에 Dialogue: 0,0:01:53.66,0:01:57.37,Default,,0000,0000,0000,,ballheight /= 1.01 라고 사용합니다 Dialogue: 0,0:01:57.37,0:01:59.47,Default,,0000,0000,0000,,이러한 모든 수식들은 어떤수식이던지 간에 Dialogue: 0,0:01:59.47,0:02:02.31,Default,,0000,0000,0000,,이 앞의 변수가 변화하는 변수의 가치를 가집니다 Dialogue: 0,0:02:02.31,0:02:04.12,Default,,0000,0000,0000,,그러므로 ballwidth는 Dialogue: 0,0:02:04.12,0:02:06.34,Default,,0000,0000,0000,,0.99를 곱하는 형태가 됩니다. Dialogue: 0,0:02:06.34,0:02:09.24,Default,,0000,0000,0000,,그러므로 ballwidth 곱하기 0.99 가 되고 Dialogue: 0,0:02:09.24,0:02:12.07,Default,,0000,0000,0000,,이는 다시 변수 ballwidth에 저장됩니다 Dialogue: 0,0:02:12.07,0:02:13.86,Default,,0000,0000,0000,,그리고 다시 Restart를 누르면 Dialogue: 0,0:02:13.86,0:02:16.00,Default,,0000,0000,0000,,보다시피 움직이는 동작은 \N이전과 같은 형태로 나타나게 되지요 Dialogue: 0,0:02:16.00,0:02:17.98,Default,,0000,0000,0000,,여러분도 게을러지게 되겠는데요?