Scratch: Trò chơi “thổi sao biển” (bài 7)

Khi đã quen quen với Scratch, bạn có thể tạo ra nhiều trò thú vị để chơi cùng với bé. Bạn đã từng thổi “phù phù” vào mi-crô để đẩy nhân vật sao biển bay lên cao. Lúc bạn ngừng thổi, sao biển từ từ… “hạ cánh an toàn”.

Đó là nhờ sao biển được lập trình như sau:

Ta hãy bày ra trò chơi như sau: thổi sao biển bay lên thật khéo, sao cho vừa vặn đạt được độ cao nhất định, tại đó có sẵn vật hứng, một chiếc nón chẳng hạn. Với mỗi chú sao biển rơi vào nón, người chơi được một điểm. Sau một phút, ai thổi sao biển vào nón nhiều nhất là người thắng cuộc.

Bạn sẽ thấy rằng không hề có lợi thế nào cho “người lớn” trong trò chơi này. Nếu thổi không khéo, sao biển sẽ vọt lên như… pháo thăng thiên, chứ không rớt vào nón. Các bé chơi trò này thường có điểm cao nhờ thổi… yếu xìu!

Để thực hiện ý định vừa nêu, trước hết bạn cần có thêm chiếc nón. Bạn bấm nút Thêm nhân vật mới (dưới sân khấu), bấm kép vào thư mụcThings, tìm đến “chiếc nón kỳ diệu” (wizardhat) ở cuối thư mục và bấm kép vào đó. Chiếc nón trở thành nhân vật thứ hai trên sân khấu.

Bạn kéo nón dịch qua trái một chút, tránh “đường bay” của sao biển. Ta cần làm cho nón lật ngược để hứng sao biển. Bạn chọn mục Hình dạng(phía trên khung kịch bản), bấm nút Chỉnh sửa. Xuất hiện một cửa sổ mang tên Môi trường vẽ, giúp bạn chỉnh sửa tùy ý “mặt mũi” của nhân vật.

Bấm nút Trôi dọc (thực chất là “lật ngược”) ở trên nút Xóa, bạn có ngay kết quả: miệng nón hướng lên “trời”. Bạn bấm nút Đặt tâm hình dạng và bấm vào điểm cao nhất của chiếc nón. Ở bước tiếp theo, khi xác định tọa độ của nón, bạn hiểu rằng đó chính là tọa độ của điểm mà bạn vừa chọn. Vậy là đủ, không cần chỉnh sửa gì nữa. Bạn bấm nút OK để đóng cửa sổMôi trường vẽ.

Bạn chọn mục Kịch bản, rồi chuyển qua khung chứa thẻ Điều khiển, kéo thẻ Khi cờ xanh được ấn vào khung kịch bản. Chuyển qua khung chứa thẻ Chuyển động, bạn kéo thẻ Nhảy tới x: y: vào khung kịch bản, gắn vào thẻ Khi cờ xanh được ấn. Bạn quy định tọa độ x là -70, tọa độ y là 65 trong thẻ Nhảy tới. Nhờ vậy, sau này mỗi khi chạy chương trình, chiếc nón luôn có vị trí ban đầu định sẵn, không đổi.

Bạn bấm vào hình sao biển trong khung nhân vật để trở lại với kịch bản của sao biển. Theo kịch bản hiện có, khi âm lượng (độ lớn âm thanh) lớn hơn 20, sao biển dịch lên trên. Nếu trái lại, âm lượng không lớn hơn 20 do bạn thổi yếu đi hoặc ngừng thổi, sao biển dịch xuống dưới.

Ta cần chú ý trường hợp “thổi yếu đi”, cụ thể là khi âm lượng vẫn còn lớn hơn 10 (chưa ngừng thổi). Khi đó, cần xem sao biển có “vừa tầm” chiếc nón hay không. Nếu “vừa tầm”, ta cho sao biển dịch sang trái và biến mất (người chơi có cảm giác sao biển rơi vào nón). Nếu ta thể hiện được điều vừa nói trong kịch bản, người chơi sẽ phải chú ý thổi yếu đi khi sao biển vừa tầm chiếc nón nếu muốn sao biển rơi vào nón (sau khi thổi đủ mạnh để sao biển bay lên).

Chuyển qua khung chứa thẻ Điều khiển, bạn kéo thẻ Nếu vào khung kịch bản, ráp vào dưới thẻ Nếu có sẵn, thuộc trường hợp Trái lại.

Tại ô điều kiện (ô lục giác) của thẻ Nếu vừa tạo ra, ta cần diễn đạt điều kiện: âm lượng lớn hơn 10 và tọa độ y nằm trong khoảng từ 55 đến 85 (“vừa tầm” là như vậy đó).

Chuyển qua ô chứa thẻ Các phép toán, bạn kéo thẻ , thả đâu đó trong khung kịch bản, bên dưới vòng lặp. Bạn kéo thẻ Lớn hơn, gắn vào ô trái của thẻ , kéo thẻ Nhỏ hơn, gắn vào ô phải của thẻ .

Chuyển qua khung chứa thẻ Chuyển động, bạn kéo thẻ Vị trí y vào thẻLớn hơn và thẻ Nhỏ hơn, rồi ghi thêm tọa độ cụ thể để diễn đạt điều kiện “y lớn hơn 55 và y nhỏ hơn 85″.

Đó mới là điều kiện thứ nhất. Bạn cần tạo thêm thẻ để diễn đạt điều kiện thứ hai: âm lượng lớn hơn 10, đặt ở đâu đó bên dưới điều kiện thứ nhất. Để kết hợp hai điều kiện, bạn kéo thêm thẻ , thả đâu đó bên dưới hai thẻ điều kiện vừa tạo ra.

Bạn ráp hai thẻ điều kiện đó vào hai ô trống của thẻ mới thêm để diễn đạt đúng điều kiện đã định.

Xong xuôi, bạn ráp thẻ điều kiện “bề thế” vừa thu được vào ô điều kiện còn bỏ trống của thẻ Nếu trong vòng lặp.

Khi điều kiện nêu trên được thỏa, ta cho sao biển di chuyển qua trái để rơi vào nón. Chuyển qua khung chứa thẻ Chuyển động, bạn kéo thẻ Thay đổi x một lượng 10 vào trong lòng thẻ Nếu còn bỏ trống và sửa độ dịch chuyển của x thành -100.

Điều bạn vừa thực hiện làm cho sao biển “xẹt” qua trái 100 điểm ảnh để rơi vào nón. Có lẽ dịch chuyển như “sao xẹt” không hay bằng sự lướt nhẹ, êm ru “như gió thoảng” (lúc đó bạn đang thổi nhẹ mà!). Để dịch chuyển thật… dịu dàng trên khoảng cách 100 điểm ảnh, bạn làm theo cách khác: dùng một vòng lặp chạy 50 lần, mỗi lần chỉ dịch chuyển sao biển 2 điểm ảnh mà thôi.

Muốn vậy, bạn sửa độ dịch chuyển -100 thành -2 trong thẻ Thay đổi x, chuyển qua khung chứa thẻ điều khiển, lấy thẻ Lặp lại 10 lần, kẹp bên ngoài thẻ Thay đổi x và sửa số lần lặp thành 50.

Sau màn trình diễn “rẽ trái”, ta cần làm cho sao biển biến mất và tái hiện ở vị trí ban đầu (xem như “ma mới”). Bạn kéo thẻ Nhảy tới vào trong thẻNếu, gắn vào dưới thẻ Lặp lại 10 lần và sửa tọa độ y trong thẻ mới thêm thành -100 (tọa độ x vẫn giữ nguyên là 0). Kịch bản của sao biển lúc này trông như sau:

Kịch bản trông thật phức tạp! Không sao, một khi bạn hiểu rõ ý nghĩa của kịch bản, bạn gợi ý cho bé lập và thử kịch bản từng bước một. Đừng làm “một lèo” từ đầu đến cuối để lập nên kịch bản phức tạp như vậy. Không có gì phải vội.

Bạn hãy bấm nút “cờ xanh” để chạy thử chương trình nha. Bạn cố gắng thổi vừa đủ để sao biển đến gần miệng nón và “sang ngang” ở đó. Bạn có thể chọn cách khác: thổi mạnh cho sao biển vọt lên, rồi “hà hơi tiếp sức” khi sao biển rơi gần miệng nón, giúp sao biển rơi vào nón. Cách sau dễ hơn nhưng tốn thêm chút thời gian. Mà thực ra có “tốn” gì đâu, lợi nhiều là đằng khác, khi mà bạn và bé có được những giây phút thật vui.

hourofcode.vn – Nguồn echip

Bài viết liên quan