Cư Sĩ Phật Giáo

Buddhists for a better world

Bài 6 Điều Khiển Nhân Vật Bằng Âm Thanh (HDLT Scratch) – Hoàng Ngọc Giao

Cùng bé lập trình Scratch
Điều khiển nhân vật bằng âm thanh (bài 6)
21/03/2013 16:47
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 thanh thu 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út Thê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ãi gắ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. 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 -5 trở 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. Bạn có thể 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 để có kết quả như sau hay không.

NGỌC GIAO
http://beta.echip.com.vn/dieu-khien-nhan-vat-bang-am-thanh-bai-6-a20130317183700371-c1137.html
Bài 6  Điều Khiển Nhân Vật Bằng Âm Thanh  – Hoàng Ngọc Giao

 

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 thanh thu từ micro.

  1. Chọn nhân vật mới: Trong cửa sổ Scratch, bạn xóa hình mèo nhí trên sân khấu, bấm phải vào nhân vật mèo nhí dưới sân khấu, chọn Xóa. Bấm nút “Chọn 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ỏ nhân vật nầy để có đủ chổ trống mà “nhảy nhót”.
  2. Chọn hình dạng 2 của nhân vật mới: Bạn 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, bấm kép vào thư mục Animals, tìm đến hình sao biển Starfish2-b và bấm kép vào nhân vật đó. Nhờ vậy, nhân vật sao biển có 2 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ừ micro để 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”.

 

  1. Tạo vòng lặp: 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, gắn thẻ “lặp mải mải” 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).

  1. Âm thanh: 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ừ micro đủ 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 gì ? Bạn chú ý đến hình lục giác 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ẻ  , 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ừ micro) lớn hơn 20 thì làm…gì đó. Nếu trái lại, độ lớn của âm thanh (thu từ micro) 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 độ ồ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”, thả vào thẻ lệnh điều kiện trong khung kịch bản, gắn ngay dưới dòng chử “Trái lại”. Bấm vào ô có số 10, bạn gỏ số -5. Sự thay đổi  tọa độ y của nhân vật nào đó sẽ 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 chuyển lên. Nếu lượng thay đổi là âm, nhân vật dịch chuyển 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ừ micro 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 bằng 20 điểm ảnh; mổi lần âm lượng không lớn hơn 20, sao biển nhảy xuống một đoạn bằng 5 điểm ảnh.

  1. Chạy chương trình: Bạn bấm nút “cờ xanh” để chạy chương trình và ….hét vào micro. 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 micro của bạn không đủ nhạy, bạn phải hét lớn.

     Để khỏi làm phiền hàng xóm, bạn có thể quy định lại điều kiện về âm lượng: bấm vào ô có số 20 bên phải dòng chử “Độ ồn”, gỏ số nhỏ hơn,như số 15 chẳng hạn. Bạn thổi “phù phù” vào micro cũng được, đở phải hét khan cổ.

  1. Thay đổi hình dạng nhân vật:Để thêm vui,bạ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 toét 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 micro để kiểm tra hiệu quả của hai thẻ lệnh vừa thêm.

  1. Đổi màu nhân vật: Để 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.

 

  1. Đặt thêm điều kiện mới: Khi bạn ngừng thổi vào micro, 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. Bạn kéo thẻ lệnh “Thay đổi y một lượng -5” ra ngoài vòng lặp nhưng vẩn ở trong khung kịch bản, và tạo thẻ lệnh diển đạt điều kiện trong trường hợp hụt hơi.

    Chuyển qua khung chứa thẻ “điều khiển”, bạn kéo thanh cuộn để tìm thẻ “Nếu”, kéo thẻ đó qua khung kịch bản,đặt vào trong vòng lặp,đặt phía dưới thẻ “Bỏ hiệu ứng đồ họa”.Xong, bạn kéo thẻ lệnh “Thay đổi y một lượng -5” trở vào vòng lặp, đặt trong thẻ lệnh điều kiện “Nếu” mới thêm. Bạn chú ý đến hình lục giác 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ẻ  , thả vào ô điều kiện. Đó là điều kiện “cái nầy lớn hơn cái kia”. Trong khung chứa thẻ “Chuyển động”, bạn kéo  thẻ “vị trí y” bỏ vào trong hình vuông thứ nhất trước dấu >.Còn trong hình vuông thứ hai phía sau dấu >, bạn gỏ số -100

     Việc thêm thắt nầy coi như một bài tập dành cho bạn.

Scratch_Echip_183:

http://www.mediafire.com/?h673o5wa6gqu5n6

Advertisements

Single Post Navigation

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: