WEBVTT 00:00:02.757 --> 00:00:06.313 Whoo hoo! Thêm một ảnh động khác. Lần này ta có một quả bóng di chuyển trên màn hình, 00:00:06.390 --> 00:00:09.502 và ta biết nó được tạo ra như thế nào. 00:00:09.502 --> 00:00:14.126 Ta đã có một biến, "x", cho biết vị trí của quả bóng, một biến "speed" cho biết quả bóng di chuyển được bao xa mỗi lần 00:00:14.126 --> 00:00:17.417 và một vòng lặp quen thuộc nơi hình nền được vẽ lại mỗi lần lặp 00:00:17.417 --> 00:00:23.195 thiết lập màu tô và vẽ hình elip tại x, và mỗi lần, 00:00:23.195 --> 00:00:26.282 ta sẽ thay đổi giá trị của "x" thành giá trị cũ của "x" cộng với biến "speed". Vậy, "speed" nhỏ hơn, 00:00:26.282 --> 00:00:38.210 ta có thể thấy bóng di chuyển chậm hơn. Tôi có thể làm cho nó nhận giá trị âm, để di chuyển thụt lùi lại, hoặc có thế gán cho nó = 0, và quả bóng sẽ ngừng di chuyển. 00:00:38.210 --> 00:00:40.481 Nhưng miễn là với tốc độ khác 0, 00:00:40.481 --> 00:00:43.840 quả bóng cuối cùng sẽ dịch chuyển ra khỏi màn hình. 00:00:43.840 --> 00:00:48.180 Và ta có thể nhấn nút chạy lại để đưa nó trở lại trang thái ban đầu, nhưng bạn biết đấy, sau một lúc, nó lại như cũ. 00:00:48.365 --> 00:00:52.697 Ta chạy lại và chạy lại ... 00:00:52.697 --> 00:00:55.738 Vậy, làm thế này thì sao? Khi quả bóng đến cạnh phải của màn hình, 00:00:55.738 --> 00:00:58.429 thay vì di chuyển ra khỏi mép màn hình như bây giờ, ta muốn nó quay lại. 00:00:58.429 --> 00:01:10.325 Và, ta biết cách xoay quả bóng, tôi chỉ cần gõ, "speed" bằng -5. Nếu tốc độ nhận giá trị âm, thì quả bóng sẽ đi lùi. 00:01:10.448 --> 00:01:12.858 Nhưng vấn đề ở đây. 00:01:12.858 --> 00:01:18.243 Ta chỉ muốn thay đổi tốc độ khi bóng chạm vào mép phải. 00:01:18.243 --> 00:01:25.919 Hmmm ... vậy như đã nói rồi, ta chỉ muốn thay đổi tốc độ NẾU bóng chạm tới mép phải. 00:01:25.919 --> 00:01:29.633 Tôi nghĩ rằng ta cần có mệnh đề "if". 00:01:29.633 --> 00:01:32.810 Cho tới giờ, ta gõ các lệnh máy tính để chạy mọi thứ. 00:01:32.810 --> 00:01:39.527 Câu lệnh "if" là một cách để nói rằng, "Này chú em, anh muốn chú chạy đoạn code này, nhưng chỉ trong những trường hợp cụ thể mà thôi." 00:01:39.527 --> 00:01:42.524 "Vậy, chỉ thay đổi tốc độ nếu như bóng chạm vào cạnh phải." 00:01:42.524 --> 00:01:45.858 Và trong code nó trông như thế này. 00:01:45.858 --> 00:01:50.947 Tất cả những gì ta cần làm là gõ "if" và sau đó là cặp dấu ngoặc đơn và sau đó là một cặp dấu ngoặc nhọn. 00:01:50.947 --> 00:01:54.343 Bên trong dấu ngoặc đơn là điều kiện. 00:01:54.343 --> 00:01:57.100 Trong dấu ngoặc ta là code cần chạy. 00:01:57.100 --> 00:02:03.014 Vậy, cách nó hoạt động là, "Nếu điều kiện là đúng, thì chạy code này. Nếu không, đừng bận tâm tới nó." 00:02:03.014 --> 00:02:10.393 Vậy, trong trường hợp này, điều kiện là quả bóng phải chạm tới cạnh phải. Làm sao để biết bóng đã chạm đến cạnh phải hay chưa? 00:02:10.393 --> 00:02:22.994 Ta đã có biến "x" cho biết quả bóng ở đâu và ta biết cạnh của khung vẽ là vị trí x = 400, vì vậy xem nào. 00:02:22.994 --> 00:02:30.459 Khi "x" > 400, ta biết bóng đã đi qua mép phải một chút. 00:02:30.459 --> 00:02:33.037 Vậy, hãy xem cách nó chạy. 00:02:33.037 --> 00:02:45.311 Và code chạy, như đã nói, ta sẽ thay đổi tốc độ. Tốc độ là -5. Ta sẽ nhấn chạy lại và xem chuyện gì xảy ra. 00:02:45.311 --> 00:02:47.518 Vậy, lần này, khi bóng đến cạnh phải, nó nảy lên! Yaaaay! 00:02:47.611 --> 00:02:50.553 Và sau đó nó tiếp tục ra khỏi màn hình. 00:02:50.553 --> 00:02:52.668 Nhưng không sao, bởi ta có thể làm điều tương tự ở phía bên kia. Lần này, ta muốn kiểm tra xem bóng đã chạm tới cạnh trái chưa. 00:02:52.668 --> 00:03:03.047 Và đó là khi x < 0, điều ta muốn làm là khiến tốc độ dương trở lại, do đó tốc độ = 5. 00:03:03.047 --> 00:03:08.108 Được rồi, sau đó ta sẽ nhấn chạy lại, và lần này ... 00:03:08.108 --> 00:03:11.715 nảy qua ... 00:03:11.715 --> 00:03:13.815 nảy lại ... 00:03:13.815 --> 00:03:14.422 nảy qua ... 00:03:14.499 --> 00:03:16.686 Nó chạy rồi. 00:03:16.686 --> 00:03:21.403 Và ta biết mình đang kiểm tra xem bóng có vượt qua giới hạn cạnh không, nhưng có cảm giác như nó đi quá xa so với cạnh. 00:03:21.619 --> 00:03:25.335 Và nếu bạn còn nhớ, hai tham số này điều chỉnh tâm điểm của hình elip được vẽ. 00:03:25.550 --> 00:03:36.897 Vậy, lúc này, khi tâm điểm chạm tới cạnh, một nửa hình elip đã vượt qua cạnh rồi. 00:03:36.897 --> 00:03:47.307 Vậy, nếu ta muốn sửa nó, chỉ cần dừng hình elip sớm hơn một chút. Vậy, nếu cạnh ở đây, ở giá trị 400 và ta muốn dừng hình elip khi đi tới đây, 00:03:47.307 --> 00:03:58.639 và ta có thể thấy, từ lời gọi hàm, rằng hình elip có chiều rộng 50, có nghĩa là từ tâm đến cạnh, khoảng cách là 25. 00:03:58.639 --> 00:04:06.868 Vậy, ta muốn dừng nó lại khi tâm điểm đạt giá trị là 375, vì nó là 400 trừ 25. 00:04:06.868 --> 00:04:10.980 Vì vậy, thay vì kiểm tra điều kiện x > 400, ta sẽ kiểm tra x > 375. 00:04:10.980 --> 00:04:15.568 Thay vì kiểm tra x < 0, ta sẽ kiểm tra x < 25. 00:04:15.568 --> 00:00:00.000 Và giờ nó thật hoàn hảo! Yay! Hãy nhìn quả bóng nảy đi.