Điều khiển nhân vật bằng âm thanh (bài 6)
Nếu máy tính của bạn có gắn mi-crô (microphone), bạn có thể bày cho bé một trò chơi rất vui: bạn và bé lần lượt… hét lên, làm cho nhân vật trong Scratch… hết hồn, nhảy dựng. Bạn hét tiếng gì cũng được, “ê.. ê… ê…” chẳng hạn.
Tiếng hét càng dài, nhân vật nhảy càng cao! Trò chơi như vậy dựa vào khả năng cảm nhận của nhân vật trong Scratch về độ lớn của âm thanhthu từ mi-crô.
Trong cửa sổ Scratch, bạn hãy xóa hình mèo nhí trên sân khấu, bấm nútThêm nhân vật mới, bấm kép vào thư mục Animals, tìm đến hình sao biển starfish1-a và bấm kép vào nhân vật đó. Lập tức, “sao biển cười” xuất hiện trên sân khấu. Theo cách đã biết, bạn thu nhỏ sao biển để nhân vật này có đủ chỗ trống mà “nhảy nhót”.
Ta cần có thêm hình “sao biển mếu” nữa. Bạn bấm vào mục Hình dạng(ngay trên khung kịch bản), bấm nút Nhập. Cửa sổ thư mục lại bày ra các nhân vật trong thư mục Animals. Bạn bấm kép vào hình starfish1-b.Nhờ vậy, nhân vật sao biển có được hai “thái độ” khác nhau, có thể bày tỏ “cảm xúc” tùy theo trường hợp.
Điều ta mong muốn là sao biển phải luôn luôn nghe ngóng âm thanh từ mi-crô để có phản ứng thích hợp.Khi nghĩ đến hai từ “luôn luôn”, bạn hiểu ngay rằng ta cần có một vòng lặp.Vậy trước tiên ta phải đưa vòng lặp vào kịch bản, rồi “làm gì thì làm”.
Bạn bấm vào mục Kịch bản, chuyển qua khung chứa thẻ Điều khiển, kéo thẻ Khi cờ xanh được ấn thả vào khung kịch bản, kéo thẻ Lặp mãi mãigắn vào bên dưới thẻ Khi cờ xanh được ấn.
Có lẽ nên quy định ngay vị trí ban đầu của nhân vật (vị trí của nhân vật khi trò chơi bắt đầu). Bạn chuyển qua khung chứa thẻ Chuyển động, kéo thẻ Nhảy tới x: 0 y: 0 vào khung kịch bản, đặt xen vào giữa thẻ Khi cờ xanh được ấn và thẻ Lặp mãi mãi. Bạn bấm vào ô ghi tọa độ y trong thẻNhảy tới, gõ -100 (chọn vị trí gần cạnh dưới của sân khấu).
Xong phần chuẩn bị “vòng ngoài”, ta đi vào vấn đề cốt lõi: trong vòng lặp, cần ra lệnh cho sao biển rằng khi âm thanh từ mi-crô đủ lớn (lớn hơn mức nào đó) thì “nhảy lên”; nếu trái lại, âm thanh chưa đủ lớn thì “rơi xuống”.
Chuyển qua khung chứa thẻ Điều khiển, bạn kéo thanh cuộn để tìm thẻNếu… trái lại…, kéo thẻ đó qua khung kịch bản, đặt vào trong vòng lặp.
Thẻ lệnh bạn vừa lấy ra từ khung chứa thẻ là một loại thẻ lệnh điều kiện, diễn đạt việc cần làm khi điều kiện của thẻ được thỏa hoặc khi điều kiện của thẻ không được thỏa.
“Điều kiện của thẻ là cái chi chi?”.Bạn chú ý hình lục giác nhỏ trong thẻ lệnh điều kiện, bên phải từ Nếu.Đó là ô chứa điều kiện của thẻ.
Để “đặt điều kiện”, bạn chuyển qua khung chứa thẻ Các phép toán, kéo thẻ có dấu lớn hơn, thả vào ô điều kiện.
Đó là điều kiện “cái này lớn hơn cái kia“. Ta cần xác định cụ thể “cái này” (ô bên trái dấu “lớn hơn”) và “cái kia” (ô bên phải dấu “lớn hơn”) là cái chi. Chuyển qua khung chứa thẻ Giác quan, bạn kéo thẻ Độ ồn, thả vào ô “cái này”. Bấm vào ô “cái kia“, bạn gõ số 20.
Tên gọi Độ ồn không chính xác lắm, gọi là Âm lượng (độ lớn của âm thanh) thì đúng hơn. Những việc bạn vừa làm diễn đạt điều kiện cụ thể, giúp thẻ lệnh điều kiện có ý nghĩa rõ ràng hơn: nếu độ lớn của âm thanh (thu từ mi-crô) lớn hơn 20 thì làm… gì đó, nếu trái lại (độ lớn của âm thanh không lớn hơn 20) thì làm gì đó khác đi.
Chuyển qua khung chứa thẻ Chuyển động, bạn kéo thẻ Thay đổi y một lượng 10, thả vào thẻ lệnh điều kiện trong khung kịch bản, gắn ngay dưới dòng chữ Nếu độ lớn > 20. Bấm vào ô có số 10, bạn gõ số 20.
Bạn lại kéo thẻ Thay đổi y một lượng 10 từ khung chứa thẻ, thả vào thẻ lệnh điều kiện trong khung kịch bản, nhưng gắn dưới dòng chữ Trái lại.Bấm vào ô có số 10 trong thẻ vừa gắn thêm, bạn gõ số -5.Sự thay đổi tọa độ y của nhân vật nào đó làm cho nhân vật xê dịch thẳng đứng.Nếu lượng thay đổi là dương, nhân vật dịch lên.Nếu lượng thay đổi là âm, nhân vật dịch xuống.
Vòng lặp của bạn đã có ý nghĩa hoàn chỉnh, giúp cho chú sao biển “luôn luôn lắng nghe” (âm thanh từ mi-crô) và “luôn luôn thấu hiểu”: mỗi lần âm lượng lớn hơn 20, sao biển nhảy lên một đoạn dài 20 điểm ảnh; mỗi lần âm lượng không lớn hơn 20, sao biển rơi xuống một đoạn dài 5 điểm ảnh.
Bạn hãy bấm nút “cờ xanh” để chạy chương trình và… hét vào mi-crô.Sao biển giật mình, nhảy vọt lên.Khi bạn thôi hét, sao biển tà tà rơi xuống. Muốn sao biển nhảy cao, bạn phải hét dài hơi mới được!
Nếu mi-crô của bạn không đủ nhạy, bạn phải hét lớn. Để khỏi phiền… hàng xóm, bạn có thể quy định lại điều kiện về âm lượng, cho “dễ thở” hơn: bấm vào ô có số 20 bên phải dòng chữ Độ ồn, gõ số nhỏ hơn. Bạn thổi “phù phù” vào mi-crô cũng được, đỡ phải hét khan cổ.
Để thêm vui, ta nên quy định hình dạng nhân vật trong trường hợp “nhảy lên” khác với trường hợp “rơi xuống”. Muốn vậy, bạn chuyển qua khung chứa thẻ Ngoại hình, kéo thẻ Chuyển sang hình dạng starfish1-b vào thẻ lệnh điều kiện, gắn trên thẻ Thay đổi y một lượng 20.
Tiếp theo, bạn kéo thẻ Chuyển sang hình dạng starfish1-b từ khung chứa thẻ, gắn trên thẻ Thay đổi y một lượng -5, bấm vào dấu mũi tên bên phải dòng chữ starfish1-b, bạn chọn starfish1-a trên trình đơn nhỏ vừa hiện ra.
Điều này nghĩa là khi nhảy lên, sao biển… mếu máo vì sợ và khi rơi xuống, sao biển cười toe vì biết bạn đã… hụt hơi! Nếu chương trình vẫn đang chạy, bạn thổi ngay vào mi-crô để kiểm tra hiệu quả của hai thẻ lệnh vừa thêm.
Để vui hơn nữa, bạn cho sao biển đổi màu lia lịa khi nhảy lên bằng cách kéo thẻ Thay đổi hiệu ứng màu một lượng 25 từ khung chứa thẻ Ngoại hình vào khung kịch bản, gắn bên dưới thẻ Chuyển sang hình dạng starfish1-b. Bạn kéo thẻ Bỏ hiệu ứng đồ họa, gắn bên dưới thẻ Chuyển sang hình dạng starfish1-a để sao biển trở lại màu bình thường khi rơi xuống.
Trong thẻ Thay đổi hiệu ứng màu một lượng 25, nếu bạn sửa 25 thành 1, sao biển sẽ biến sắc dần dần thay vì đổi màu đột ngột. Tuy nhiên, có lẽ cứ để mức thay đổi màu là 25 để sao biển chớp nháy liên tục, trông vui mắt hơn.
Khi bạn ngừng thổi vào mi-crô, sao biển rơi xuống vượt quá cạnh dưới sân khấu và mắc kẹt ở đó.Để tọa độ y của sao biển có mức thấp nhất là -100 (không thể thấp hơn -100), ta chỉ nên dùng thẻ lệnh Thay đổi y một lượng -5 với điều kiện tọa độ y còn lớn hơn -100.
Để thực hiện ý tưởng như vậy, bạn hãy kéo thẻ lệnh Thay đổi y một lượng -5 ra ngoài vòng lặp, tạo thẻ lệnh diễn đạt điều kiện vừa nêu trong trường hợp “hụt hơi”. Xong, bạn kéo thẻ lệnh Thay đổi y một lượng -5trở vào vòng lặp, đặt trong thẻ lệnh điều kiện mới thêm.
Việc “thêm thắt” này xem như một bài tập dành cho… bạn. Bạn nhớ dùng thẻ Vị trí y trong khung chứa thẻ Chuyển động nha. Sau đó, bạn chuyển bài tập này cho bé, xem bé có ráp được thẻ lệnh điều kiện mới hay không.
hourofcode.vn Nguồn: echip