Trong bài này
Một chương trình Scratch không chạy “ngẫu nhiên”. Scratch thực hiện các khối trong một kịch bản theo thứ tự từ trên xuống dưới, trừ khi gặp khối điều khiển làm thay đổi nhịp chạy như chờ, lặp, nếu-thì hoặc phát tin.
Bài này giúp em hiểu hai ý rất quan trọng: tuần tự là làm từng bước theo thứ tự, còn sự kiện là tín hiệu làm một kịch bản bắt đầu.
Mục tiêu bài học
Sau bài này, em cần:
- Đọc được thứ tự thực hiện của một kịch bản Scratch.
- Biết các sự kiện phổ biến: cờ xanh, phím được bấm, nhân vật được bấm, khi nhận tin.
- Hiểu vì sao nên đặt lại biến ở đầu chương trình.
- Biết dùng phát tin và khi nhận tin để nối nhiều kịch bản với nhau.
- Phân biệt “chờ một khoảng thời gian” với “chờ một sự kiện”.
Tư duy tuần tự
Tuần tự nghĩa là khối nào nằm trên thì chạy trước, khối nào nằm dưới thì chạy sau. Nếu có ba khối:
- đặt điểm thành 0
- nói “Chuẩn bị”
- phát tin “bat dau”
thì Scratch sẽ đặt điểm trước, nói sau, rồi mới phát tin. Nếu đảo thứ tự, kết quả có thể khác.
Sự kiện là điểm bắt đầu
Một kịch bản Scratch thường cần khối sự kiện ở đầu. Các sự kiện phổ biến:
| Sự kiện | Khi nào chạy? | Dùng trong tình huống |
|---|---|---|
| Khi bấm cờ xanh | Người dùng bấm nút cờ xanh | Khởi động toàn bộ dự án |
| Khi phím được bấm | Người dùng bấm một phím | Điều khiển nhân vật |
| Khi nhân vật này được bấm | Người dùng bấm vào nhân vật | Nút chọn, NPC, vật phẩm |
| Khi nhận tin | Có kịch bản khác phát tin | Chia chương trình thành nhiều phần |
Ví dụ đọc khối lệnh

Kịch bản thứ nhất:
- Khi bấm cờ xanh, đặt biến
diemthành 0. - Nhân vật nói “Chuẩn bị” trong 1 giây.
- Chương trình đợi 1 giây.
- Chương trình phát tin “bat dau”.
Kịch bản thứ hai:
- Khi nhận tin “bat dau”, nhân vật nói “Bắt đầu!” trong 1 giây.
Như vậy, “phát tin” giống như gửi tín hiệu. Còn “khi nhận tin” là nơi nhận tín hiệu đó để chạy tiếp.
Vì sao phải đặt lại biến ở đầu?
Nếu trò chơi có biến điểm, thời gian hoặc số mạng, em nên đặt lại biến ngay sau khối cờ xanh. Nếu không, lần chạy mới có thể dùng lại giá trị cũ từ lần trước.
Ví dụ:
| Biến | Giá trị nên đặt khi bắt đầu | Lý do |
|---|---|---|
| điểm | 0 | Trò chơi mới phải tính điểm lại từ đầu. |
| thời gian | 60 | Đồng hồ cần về mốc ban đầu. |
| mạng | 3 | Người chơi bắt đầu với số mạng cố định. |
| trạng thái | "đang chơi" | Dự án biết đang ở màn nào. |

Trong ví dụ này, biến diem và thoiGian được đặt lại trước khi phát tin bắt đầu. Nếu phát tin trước rồi mới đặt biến, các kịch bản nhận tin có thể đọc nhầm giá trị cũ.
Khi nào dùng phát tin?
Dùng phát tin khi em muốn nhiều nhân vật phối hợp mà không cần nhét mọi lệnh vào một kịch bản dài.
Ví dụ:
- Nhân vật A phát tin “bat dau”.
- Nhân vật B nhận tin rồi xuất hiện.
- Nhân vật C nhận tin rồi phát âm thanh.
- Sân khấu nhận tin rồi đổi phông nền.
Cách này giúp chương trình dễ đọc hơn vì mỗi nhân vật chỉ giữ phần việc của mình.
Minh họa broadcast trong một dự án
Hãy hình dung phát tin như một tín hiệu chung trong dự án. Một kịch bản phát tín hiệu, còn nhiều nhân vật hoặc sân khấu có thể cùng nhận tín hiệu đó để chạy phần việc riêng. Cách tổ chức này giúp dự án lớn dễ kiểm soát hơn so với việc gom mọi hành động vào một chồng khối duy nhất.
Ví dụ sự kiện bàn phím

Khi bấm phím Space, chương trình phát tin nhay. Một kịch bản khác nhận tin đó rồi cho nhân vật di chuyển 40 bước. Cách tách này hữu ích khi nhiều nhân vật cùng cần phản ứng với một thao tác.
Lỗi thường gặp
| Lỗi | Hậu quả | Cách sửa |
|---|---|---|
| Không đặt lại biến | Điểm/thời gian bị giữ từ lần chạy trước. | Đặt biến ở đầu kịch bản cờ xanh. |
| Phát tin sai tên | Kịch bản nhận tin không chạy. | So sánh đúng tên tin ở cả hai khối. |
| Đặt khối chờ sai vị trí | Nhân vật phản ứng quá sớm hoặc quá muộn. | Đọc lại thứ tự từ trên xuống. |
| Tất cả lệnh nằm trong một kịch bản dài | Khó tìm lỗi và khó mở rộng. | Dùng phát tin để chia phần. |
| Nghĩ rằng phát tin tự dừng chương trình | Các khối bên dưới phát tin vẫn có thể chạy tiếp. | Nếu cần dừng, dùng khối dừng phù hợp. |
Tóm tắt
Scratch chạy theo thứ tự từ trên xuống dưới trong từng kịch bản. Khối sự kiện cho biết khi nào kịch bản bắt đầu. Khi dự án lớn hơn, phát tin và khi nhận tin giúp các nhân vật phối hợp rõ ràng, dễ đọc và dễ sửa lỗi.