[Công nghệ Thông tin] -- [Web] -- [Công nghệ phần mềm] -- [PhoThong] -- [TỪ ĐIỂN] -- [Game] -- [Học viên cũ] -- [10.000 giờ]
--------------- <> -----------------
---  KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
---  Nhận làm website, web app, chạy quảng cáo, digital marketing --->>>  LIÊN HỆ...

Tìm kiếm trong Blog

Lập trình Scratch (10) - Phát thông điệp

Bài trước: Lập trình Scratch (9) - Thời gian thực thi lệnh 
-----

10. Phát thông điệp

Bình thường, để khởi chạy một khối lệnh, bạn phải bấm chuột vào lá cờ màu xanh, bấm chuột vào khối lệnh, hoặc bấm một phím nào đó.

Tuy nhiên, có một cách khác để khởi chạy một  (hoặc nhiều) khối lệnh là sử dụng thông điệp (message).

Quá trình được thực hiện như sau:

- Bước 1, bạn sẽ tạo ra một thông điệp.

- Bước 2, phát đi thông điệp.

- Bước 3, thành phần nào nhận được thông điệp sẽ khởi chạy, hoặc thực thi một việc gì đó.

Về lý thuyết, các khối lệnh nhận được thông điệp sẽ ngay lập tức được thực thi. Tuy nhiên, chúng ta vẫn có thể lập trình để có thể kiểm soát được thời điểm thực thi này.

10. Broadcast messages

Sending messages allows you to start arbitrary pieces of code. If there are multiple receivers, they apparently all start at the same time. In reality, however, control is rapidly being switched between the different processes.

10.1 Nhiều bộ nhận thông điệp

Chúng ta cùng tạo một thông điệp và gửi tới 2 bộ nhận thông điệp.

- Bạn tạo một nhân vật (sprite1)

- Thêm khối lệnh broadcast message1 

- Bấm chuột vào message1, chọn New message để tạo thông điệp mới (đặt tên là ThongDiep1).

- Thêm tiếp khối lệnh sau:

- Bấm khối lệnh broadcast ThongDiep1 để thực thi và quan sát kết quả. Nếu chạy được, bạn sẽ thấy chú mèo thông báo là “Đã nhận ThongDiep1”. Vậy là bạn đã tạo và gửi được thông điệp thành công.

- Tạo thêm một nhân vật nữa (thêm một chú mèo, đặt tên là sprite2).

- Thêm đoạn mã sau, cho nhân vật mới thêm


- Bấm khối lệnh broadcast ThongDiep1 để thực thi và quan sát kết quả. Nếu chạy được, cả 2 chú mèo đều thông báo là “Đã nhận: ThongDiep1. Vậy là bạn đã tạo và gửi được thông điệp tới 2 nhân vật thành công.

Bài tập 10a. Bạn hãy tạo 3 nhân vật khác nhau, sau đó tạo một thông điệp để gửi tới 3 nhân vật này. Nhân vật nào nhận được thông điệp thì thông báo là: Tên nhân vật: đã nhận được thông điệp. Ví dụ: Mèo: đã nhận được thông điệp, Sư tử: đã nhận được thông điệp, Voi: đã nhận được thông điệp.

Bài tập 10b. Bài tập Tình huống

Tình huống: Dàn nhạc biểu diễn

Trường bạn đang chuẩn bị cho một buổi biểu diễn văn nghệ. Bạn là nhạc trưởng, và các nhân vật lập trình của bạn là các thành viên trong dàn nhạc.

Dàn nhạc của bạn có 3 thành viên chính:

- Nhân vật 1: Chú chim Họa mi (người hát chính).

- Nhân vật 2: Cây đàn Guitar (người đệm nhạc).

- Nhân vật 3: Hoa Mai (người nhảy múa phụ họa).

Nhiệm vụ của bạn:

Bạn cần lập trình để tất cả 3 thành viên này bắt đầu biểu diễn “đúng lúc” bạn ra hiệu lệnh.

Bước 1: Tạo tín hiệu bắt đầu.

- Tạo nhân vật Nhạc trưởng

- Tạo một thông điệp mới (message) và đặt tên là "Bắt đầu biểu diễn".

- Lập trình để khi bạn bấm vào lá cờ màu xanh (hoặc một phím bất kỳ), nhân vật Nhạc trưởng sẽ phát đi thông điệp "Bắt đầu biểu diễn".

Bước 2: Lập trình cho các thành viên.

- Lập trình cho nhân vật chú chim Họa mi: Khi nhận được thông điệp "Bắt đầu biểu diễn", chim Họa mi sẽ nói (hoặc phát ra âm thanh) một câu như: "Chào các bạn, mời các bạn nghe hát!" trong 2 giây.

- Lập trình cho nhân vật Cây đàn Guitar: Khi nhận được thông điệp "Bắt đầu biểu diễn", Guitar sẽ chơi một đoạn nhạc ngắn (hoặc chỉ cần thay đổi hình dạng/màu sắc) để đệm.

- Lập trình cho nhân vật Hoa Mai: Khi nhận được thông điệp "Bắt đầu biểu diễn", Hoa sẽ thực hiện một động tác chuyển động (ví dụ: quay 5 vòng hoặc thay đổi trang phục).

Mục tiêu:

Khi bạn bấm nút Khởi chạy, hãy quan sát xem cả 3 nhân vật (Chim, Đàn, Hoa) có cùng lúc nhận được lệnh và thực hiện nhiệm vụ của mình không.

[Gợi ý làm bài tập 10b]

[Bước 1] Chuẩn bị Sân khấu và Nhân vật

Chọn Phông nền và Nhân vật:

- Xóa nhân vật Mèo mặc định

- Thêm 4 nhân vật từ thư viện Scratch:

1. Nhạc trưởng (conductor): Chọn một nhân vật làm người ra hiệu lệnh (ví dụ: Dot hoặc bất kỳ nhân vật nào khác). Đặt tên là NhacTruong.

2. Chim Họa mi (hát chính): Tìm một nhân vật chim (ví dụ: duck hoặc nhân vật bất kỳ).

Đặt tên là HoaMi.

3. Cây đàn Guitar (đệm nhạc): Tìm nhân vật đàn (ví dụ: Guitar hoặc nhạc cụ bất kỳ).

Đặt tên là DanGuitar.

4. Hoa Mai (nhảy múa): Tìm nhân vật hoa hoặc người nhảy múa

(ví dụ: Flower hoặc Dancer).

Đặt tên là HoaMai.

[Bước 2] Tạo tín hiệu bắt đầu (nhân vật NhacTruong)

Bạn sẽ lập trình cho nhân vật NhacTruong để phát tín hiệu:

- Chọn nhân vật NhacTruong

- Trong nhóm Events, kéo khối: when [green flag] clicked

- Trong nhóm Events, kéo khối: broadcast [message1]

- Bấm vào mũi tên nhỏ trong khối broadcast [message1], chọn New Message

- Đặt tên cho message (thông báo) là: "BatDauBieuDien” (bắt đầu biểu diễn)

[Bước 3]  Lập trình cho các thành viên dàn nhạc

Mỗi nhân vật sẽ có một kịch bản riêng,

bắt đầu bằng khối lệnh "When I receive [message](Khi nhận được [thông báo]).

Nhân vật chim Họa mi

- Chọn nhân vật HoaMi

- Trong nhóm Events, kéo khối: When I receive [BatDauBieuDien]

- Trong nhóm Looks, kéo khối: say "Chào các bạn, mời các bạn nghe hát!" for 2 seconds hoặc dùng tiếng Anh là say "Hello everyone, please enjoy the song!" for 2 seconds.

- Trong nhóm Sound, thêm âm thanh bằng cách kéo khối start sound [tên âm thanh], hoặc play sound until done (phát âm thanh cho tới khi hết). Hoặc bạn hãy tải tập tin Mưa hè.mp3 từ trên mạng. Hoặc bạn có thể tự thu âm theo ý thích.

Nâng cao: Bạn hãy lập trình cho bạn chim Họa mi nhún nhảy khi hát.

Nhân vật Cây đàn Guitar (đệm nhạc)

- Chọn nhân vật DanGuitar

- Trong nhóm Events, kéo khối: When I receive [BatDauBieuDien]

- Trong nhóm Controls, dùng khối forever (lặp liên tục) và trong nhóm Looks dùng khối Change color effect by [25] (thay đổi hiệu ứng một lượng [25] để tạo hiệu ứng nhấp nháy

- Trong nhóm Sound, dùng khối play sound hoặc trong nhóm Music (bạn sử dụng Add Extension) dùng khối play note để tạo giai điệu.

Nhân vật Hoa Mai (nhảy múa phụ họa)

- Chọn nhân vật HoaMai

- Trong nhóm Events, kéo khối: When I receive [BatDauBieuDien]

- Trong nhóm Control, kéo khối forever (lặp lại liên tục)

  • Trong nhóm Motion, kéo khối turn 45 (quay 45 độ)

  • Dùng khối next costume (trang phục kế tiếp) để tạo hiệu ứng nhảy múa

  • Hoặc bạn có thể tạo hiệu ứng theo ý muốn

Bạn hãy thay đổi nền thành một sân khấu biểu diễn.

Chạy kiểm tra

- Nhấn vào lá cờ xanh (green flag)

- Quan sát: Nhạc trưởng phát thông điệp. Cùng lúc đó, Chim Họa mi nói,

Guitar nhấp nháy (hoặc chơi nhạc), và Hoa mai bắt đầu quay/nhảy.

- Nhờ vào cơ chế Phát thông điệp (tín hiệu, thông báo),

khi Nhạc trưởng phát đi thông điệp,

tất cả các nhân vật lắng nghe thông điệp đó

sẽ bắt đầu thực hiện nhiệm vụ của mình gần như cùng một lúc!

Chúc mừng, bạn đã đồng bộ hóa thành công dàn nhạc của mình!

10.1 Simultaneous receivers

Here we see the broadcast of message 1 which has already ended, and the 2 receiving blocks which are still active.

-----

Bài sau: Lập trình Scratch (11) - Đồng bộ hóa