[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.00,0:00:05.07,Default,,0000,0000,0000,, Giờ hãy nói về các điều kiện phức tạp hơn mà ta có thể kiểm tra trong chương trình. Dialogue: 0,0:00:05.07,0:00:08.06,Default,,0000,0000,0000,, Để minh họa, tôi đã thiết lập khung vẽ trông như một trò chơi cũ đã từng chơi Dialogue: 0,0:00:08.06,0:00:09.35,Default,,0000,0000,0000,, Foursquare. Dialogue: 0,0:00:09.35,0:00:14.85,Default,,0000,0000,0000,, Có bốn hình vuông (nó có một cái tên hay) và bạn đứng trong một hình vuông rồi đưa bóng của bạn vào trong các hình vuông khác. Dialogue: 0,0:00:14.85,0:00:18.66,Default,,0000,0000,0000,, Vậy, ngay bây giờ tôi sẽ vẽ một hình elip tại vị trí con trỏ, như vậy nó giống như một quả bóng Dialogue: 0,0:00:18.66,0:00:23.49,Default,,0000,0000,0000,, Những gì tôi muốn làm là làm nổi bật hình vuông mà quả bóng đang ở, bằng cách vẽ một hình chữ nhật màu trắng trên nó. Dialogue: 0,0:00:23.49,0:00:29.68,Default,,0000,0000,0000,, Tôi biết mình cần một mệnh đề {\i1} IF để làm điều đó, bởi tôi chỉ muốn làm điều đó mỗi khi vượt qua hình chữ nhật đó{\i0} Dialogue: 0,0:00:29.68,0:00:34.39,Default,,0000,0000,0000,, Được rồi, vậy hãy bắt đầu bằng cách vẽ hình chữ nhật. Dialogue: 0,0:00:34.39,0:00:39.90,Default,,0000,0000,0000,, Tôi chỉ cần copy trực tiếp từ đó, nhưng tô cho nó một màu khác, màu trắng chẳng hạn. Dialogue: 0,0:00:39.90,0:00:43.66,Default,,0000,0000,0000,, Tốt rồi. Giờ, hãy bọc nó trong khối lệnh {\i1} IF {\i0} Dialogue: 0,0:00:45.06,0:00:50.50,Default,,0000,0000,0000,, Bạn thấy đấy, nó tự động điền dấu ngoặc nhọn, nên ta phải di chuyển vào bên trong. Dialogue: 0,0:00:50.50,0:00:53.96,Default,,0000,0000,0000,, Ok. Vậy khi nào ta muốn hiển thị hình chữ nhật đó? Dialogue: 0,0:00:54.03,0:01:00.89,Default,,0000,0000,0000,, Chà, ta biết ta muốn làm điều đó khi mouseX nhỏ hơn 200 {\i1} (mouseX < 200) {\i0} Dialogue: 0,0:01:00.89,0:01:07.07,Default,,0000,0000,0000,, Nó đã chạy, nhưng sau đó nếu tôi đi xuống đây, nó vẫn đang hiển thị. Dialogue: 0,0:01:07.07,0:01:10.35,Default,,0000,0000,0000,, Nên tôi cũng cần kiểm tra {\i1} mouseY nữa. {\i0} Dialogue: 0,0:01:10.35,0:01:13.27,Default,,0000,0000,0000,, Chà, làm cách nào để kiểm tra {\i1} Cả 2 điều đó? {\i0} Dialogue: 0,0:01:13.27,0:01:14.94,Default,,0000,0000,0000,, Đó là lý do tại sao ta có toán tử "VÀ" Dialogue: 0,0:01:14.94,0:01:17.85,Default,,0000,0000,0000,, Vậy, toán tử And được sử dụng khi ta muốn kiểm tra nhiều điều kiện. Dialogue: 0,0:01:17.85,0:01:26.19,Default,,0000,0000,0000,, Vậy, ta chỉ cần viết {\i1} && và sau đó viết điều kiện tiếp theo, "mouseY < 200" {\i0} Dialogue: 0,0:01:26.19,0:01:30.32,Default,,0000,0000,0000,, Nó không sáng còn ở đây nữa và nó ở đây! YAYY Dialogue: 0,0:01:30.89,0:01:36.18,Default,,0000,0000,0000,, Hãy thực hiện với hình vuông tiếp theo, chỉ để chứng minh rằng nó hoạt động. Dialogue: 0,0:01:36.18,0:01:38.68,Default,,0000,0000,0000,, Được rồi, ta chỉ cần thay đổi một số chỗ. Dialogue: 0,0:01:38.68,0:01:45.39,Default,,0000,0000,0000,, Thay vào đó hãy lấy hình chữ nhật này, và rõ ràng cần thay đổi điều kiện để nó không sáng lên nữa. Dialogue: 0,0:01:45.39,0:01:52.96,Default,,0000,0000,0000,, Vậy, lần này, mouseX cần lớn hơn 200 và mouseY vẫn nhỏ hơn 200 Dialogue: 0,0:01:52.96,0:01:56.29,Default,,0000,0000,0000,, Đẹp quá, nhìn kìa! Dialogue: 0,0:01:56.29,0:02:02.25,Default,,0000,0000,0000,, Được rồi, bây giờ, trong Foursquare, bất cứ khi nào bóng chạm vào các cạnh, bạn biết đấy, những đường này nằm ở giữa và các góc Dialogue: 0,0:02:02.30,0:02:04.51,Default,,0000,0000,0000,, ta luôn thông báo "EdgeBall" Dialogue: 0,0:02:04.82,0:02:10.39,Default,,0000,0000,0000,, Vậy, tôi cũng muốn làm điều đó ở đây. Hãy bắt đầu bằng cách viết "EDGE BALLL". Dialogue: 0,0:02:10.39,0:02:14.82,Default,,0000,0000,0000,, Và hãy viết ở giữa và tô chữ màu đỏ. Dialogue: 0,0:02:14.82,0:02:19.78,Default,,0000,0000,0000,, Vậy, tôi chỉ muốn nó xảy ra nếu chạm vào cạnh. Dialogue: 0,0:02:19.78,0:02:22.51,Default,,0000,0000,0000,, Vậy, ta sẽ thêm if Dialogue: 0,0:02:22.51,0:02:25.57,Default,,0000,0000,0000,, Và chuyển đoạn code này vào bên trong nó Dialogue: 0,0:02:27.17,0:02:29.60,Default,,0000,0000,0000,, Khi nào tôi muốn nó xảy ra? Dialogue: 0,0:02:29.62,0:02:36.94,Default,,0000,0000,0000,, Ồ, có các cạnh ở giữa, nên ở giữa là khi mouseX == 200 Dialogue: 0,0:02:36.94,0:02:40.40,Default,,0000,0000,0000,, Được rồi để xem. Tôi có nhận được Edge Ball không .. Dialogue: 0,0:02:40.40,0:02:43.82,Default,,0000,0000,0000,, Chúng tới rồi! EDGE BALL Dialogue: 0,0:02:43.82,0:02:49.40,Default,,0000,0000,0000,, OK. Hừm. Vậy, nó hoạt động trong đường kẻ giữa này, ở đây Dialogue: 0,0:02:49.40,0:02:52.13,Default,,0000,0000,0000,, Nhưng tôi cũng muốn nó hoạt động tại đường kẻ này ở đây nữa. Dialogue: 0,0:02:52.13,0:03:02.82,Default,,0000,0000,0000,, Vậy, trong trường hợp đó, tôi muốn mouseY == 200, vì đó là đường kẻ giữa. Dialogue: 0,0:03:02.82,0:03:08.32,Default,,0000,0000,0000,, Ok Hãy xem, nó không hoạt động. Chẳng có gì hoạt động cả. Dialogue: 0,0:03:08.32,0:03:11.15,Default,,0000,0000,0000,, Ow, có 1 thứ chạy được, tại chính giữa tâm điểm. Dialogue: 0,0:03:11.15,0:03:19.03,Default,,0000,0000,0000,, Vâng, đó là bởi ta đã sử dụng toán tử VÀ, vì vậy nó sẽ chỉ thực hiện nếu cả hai điều kiện này là đúng, và nó sẽ chỉ xảy ra ở tâm điểm. Dialogue: 0,0:03:19.03,0:03:22.10,Default,,0000,0000,0000,, Vậy, những gì tôi thực sự muốn nói là, EITHER (HOẶC) một trong những điều này đúng Dialogue: 0,0:03:22.10,0:03:24.70,Default,,0000,0000,0000,, Vậy, ta sử dụng toán tử OR Dialogue: 0,0:03:24.70,0:03:27.64,Default,,0000,0000,0000,, Vậy, toán tử OR trông như thế này: "||" Dialogue: 0,0:03:27.64,0:03:31.63,Default,,0000,0000,0000,, Ta gọi chúng là ký tự sổ dọc (pipe symbols), và có lẽ bạn chưa bao giờ sử dụng chúng Dialogue: 0,0:03:31.63,0:03:35.76,Default,,0000,0000,0000,, Bạn phải nhìn nó trên bàn phím, nó thường ở phía trên bên phải Dialogue: 0,0:03:35.76,0:03:39.62,Default,,0000,0000,0000,, Hy vọng rằng bạn thực sự thấy có nó trên bàn phím. Dialogue: 0,0:03:39.62,0:03:42.72,Default,,0000,0000,0000,, Ổn rồi? Tuyệt, vậy bây giờ hãy xem nó hoạt động hay không .. Dialogue: 0,0:03:42.72,0:03:46.70,Default,,0000,0000,0000,, Được rồi, nó hoạt động ở đó, ở đó và sau đó hoạt động ở đó .. đẹp đấy .. Dialogue: 0,0:03:46.70,0:03:49.49,Default,,0000,0000,0000,, ta có thể tiếp tục thêm nhiều điều kiện ở đây Dialogue: 0,0:03:49.49,0:03:52.60,Default,,0000,0000,0000,, Như vậy với cả AND và OR, bạn có thể có nhiều thứ như mình muốn Dialogue: 0,0:03:52.60,0:03:55.79,Default,,0000,0000,0000,, Nếu cần kiểm tra 60 điều kiện khác nhau, ta hoàn toàn có thể làm điều đó, phải không? Dialogue: 0,0:03:55.79,0:03:59.10,Default,,0000,0000,0000,, Bởi ta chưa quan tâm tới các cạnh nên Dialogue: 0,0:03:59.10,0:04:04.65,Default,,0000,0000,0000,, giả sử nếu mouseX nhỏ hơn 3 Dialogue: 0,0:04:04.65,0:04:09.13,Default,,0000,0000,0000,, Vậy, đó phải là ... xem nào, cạnh bé xíu nằm ở đó Dialogue: 0,0:04:09.13,0:04:10.74,Default,,0000,0000,0000,, Rất tốt Dialogue: 0,0:04:10.74,0:04:14.76,Default,,0000,0000,0000,, Hoặc mouseX lớn hơn 397 {\i1} (mouseX> 397) {\i0} Dialogue: 0,0:04:14.76,0:04:17.77,Default,,0000,0000,0000,, Xem nào .. đẹp quá! Dialogue: 0,0:04:17.77,0:04:21.53,Default,,0000,0000,0000,, Vậy, ta tiếp tục áp dụng điều đó với tất cả các cạnh Dialogue: 0,0:04:21.53,0:04:27.70,Default,,0000,0000,0000,, Như vậy, vâng! Với AND (&&) và OR (||) giờ bạn có thể thấy cách ta xây dựng các điều kiện phức tạp hơn nhiều trong các chương trìnhh. Dialogue: 0,0:04:27.70,0:00:00.00,Default,,0000,0000,0000,, Và điều đó thật tốt, bởi thế giới quả là nơi phức tạp.