--------------- <> -----------------
--- KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
--- Học để đi cùng bà con trên thế giới ---

Tìm kiếm trong Blog

Lập trình Scratch (15) - Tạo lời thoại 1

Bài trước: Lập trình Scratch (14) - Hoạt hình 2
-----

15. Tạo lời thoại

15.1 Sử dụng lệnh wait (đợi)

Cách dễ nhất để tạo lời thoại giữa 2 nhân vật là sử dụng khối lệnh wait.

Ý tưởng là: cho 2 nhân vật luân phiên “nói” rồi “yên lặng”. 

Cụ thể:

- Nhân vật 1 nói một câu, rồi “yên lặng” trong 2 giây

- Nhân vật 2 sẽ “yên lặng” trong 2 giây, rồi nói

- Cứ luân phiên, lặp lại liên tục giữa 2 nhân vật.

Ví dụ: Bạn cùng lập trình theo hướng dẫn sau.

- Xóa nhân vật mèo (Cat)

- Thêm 2 nhân vật (tùy ý), ví dụ Hen và Duck

- Chọn nhân vật Hen (con gà), và lập trình như sau


Mã Scratch

Giải thích

when green flag clicked

Khi nhấn nút Bắt đầu (Lá cờ xanh)

set rotation style [left-right]

Bạn gà đang quay mông vào 

bạn vịt, vậy không lịch sự khi 

nói chuyện.

Thiết lập kiểu xoay [trái - phải], 

chứ không phải xoay trên - dưới

(xoay trên dưới sẽ làm nhân

tật bị cắm đầu)

point in direction -90

Quay người -90 độ

say [chào Vịt] for 2 second

Gà chào Vịt trước (cho 2 giây để nói)

wait 2 seconds

Yên lặng trong 2 giây, để Vịt nói

say [đi đâu vậy] for 2 second

Hỏi Vịt đi đâu vậy 

(cho 2 giây để hỏi)

wait 2 seconds

Yên lặng trong 2 giây, để Vịt nói


- Chọn nhân vật Duck (con vịt), và lập trình như sau

Mã Scratch

Giải thích

when green flag clicked

Khi nhấn nút Bắt đầu (Lá cờ xanh)

wait 2 seconds

Yên lặng trong 2 giây, 

để Gà nói trước

say [chào Gà] for 2 second

Vịt chào lại Gà (cho 2 giây để nói)

wait 2 seconds

Yên lặng trong 2 giây, để Gà nói

say [đi bắt cua hoàng đế về ăn]

 for 2 second

Vịt trả lời câu hỏi “đi đâu vậy” của

 Gà (cho 2 giây để hỏi)

15.2 Sử dụng Bộ đếm thời gian

Ở phần trước, bạn đã biết cách sử dụng khối lệnh wait để tạo đoạn hội thoại giữa 2 nhân vật.

Phần này, chúng ta sẽ học thêm một cách hay hơn để tạo đoạn hội thoại là sử dụng Bộ đếm thời gian (timer). 

Mỗi dự án Scratch đều có một bộ đếm thời gian. Khi chương trình bắt đầu, bộ đếm thời gian sẽ bắt đầu tăng dần.

Bạn hãy đánh dấu chọn vào lệnh timer (nằm trong khối lệnh Sensing), Bộ đếm thời gian sẽ hiển thị trên màn hình kết quả.

Chúng ta sẽ thực hiện từng bước để lập trình cho 2 nhân vật Cat và Gobo nói chuyện với nhau (Bạn có thể thay Cat và Gobo bằng 2 nhân vật tùy ý).

Đoạn mã 1. Lập trình cho nhân vật Cat di chuyển:

Mã Scratch

Giải thích

when green flag clicked

Bắt đầu thực hiện các lệnh bên dưới khi nhấn vào lá cờ xanh

set rotation style [left-right]

Thiết lập kiểu xoay là "trái-phải". Điều này giúp nhân vật không bị lộn ngược đầu khi quay hướng

repeat until <timer > 10>

Lặp lại các hành động bên trong cho đến khi bộ đếm thời gian (timer) lớn hơn 10 giây thì dừng lại

move (25) steps

Di chuyển nhân vật về phía trước 25 bước

next costume

Chuyển sang trang phục kế tiếp để tạo hiệu ứng nhân vật đang bước đi

if on edge, bounce

Nếu nhân vật chạm vào cạnh của sân khấu, nó sẽ tự động bật ngược trở lại

wait (.2) seconds

Tạm dừng trong 0.2 giây để chuyển động trông mượt mà và không quá nhanh

stop [all]

Dừng tất cả các kịch bản đang chạy sau khi vòng lặp kết thúc


Đoạn mã 2. Lập trình cho nhân vật Cat nói chuyện:

(đoạn mã 2 đặt song song với đoạn mã 1)

Mã Scratch

Giải thích

when green flag clicked

Bắt đầu kịch bản đối thoại khi nhấn lá cờ xanh

say [Chào bạn cá!] for 2 seconds

Nhân vật Cat nói "Chào bạn cá" trong vòng 2 giây

wait until <timer > 4>

Tạm dừng kịch bản, đợi cho đến khi Bộ đếm thời gian lớn hơn 4 giây mới tiếp tục

say [Chơi liền, game gì?] for 2 seconds

Nói câu "Chơi liền, game gì" trong vòng 2 giây

wait until <timer > 8>

Tiếp tục đợi cho đến khi Bộ đếm thời gian lớn hơn 8 giây

say [Okie] for 2 seconds

Nói câu cuối cùng "Okie" trong vòng 2 giây


Đoạn mã 3. Lập trình cho nhân vật Gobo

Chọn nhân vật Gobo, lập trình theo hướng dẫn sau:

Mã Scratch

Giải thích

when green flag clicked

Bắt đầu kịch bản khi nhấn vào lá cờ xanh

wait until <timer > 2>

Tạm dừng kịch bản, đợi cho đến khi Bộ đếm thời gian (timer) lớn hơn 2 giây mới tiếp tục

say [Chào mèo, chơi game không?] for 2 seconds

Nhân vật nói câu "Chào mèo, chơi game không?" trong vòng 2 giây

wait until <timer > 6>

Tiếp tục đợi cho đến khi Bộ đếm thời gian lớn hơn 6 giây mới thực hiện lệnh tiếp theo

say [Roblox] for 2 seconds

Nhân vật nói từ "Roblox" trong vòng 2 giây để kết thúc đoạn thoại


Dialog

Use simple wait blocks

The simplest way to make a dialog between two sprites, is to use wait blocks. Here we have Scratchy the cat and Gobo the blowfish talk to each other.

Each sprite needs to respect the other sprite’s timing.

-----
Bài sau: