Bài viết này sẽ giải thích về khái niệm Clone hay còn gọi là bản sao trong Scratch, nêu ví dụ ứng dụng và hướng dẫn cách lập trình với Clone (bản sao) trong Scratch.
Clone là gì?
Clone có nghĩa là bản sao. Nếu bạn nhỏ nào yêu thích phim hoạt hình Naruto thì chắc chắn sẽ không còn xa lạ với thuật phân thân. Đây một phép thuật mà Naruto rất hay sử dụng. Phép thuật này giúp Naruto tạo ra nhiều bản sao giống hệt mình. Các bản sao này sẽ làm các việc mà Naruto yêu cầu và sẽ biến mất khi thực hiện xong.
Nếu bạn nhỏ nào chưa biết về thuật phân thân của Naruto thì hãy xem clip dưới đây nhé:
Cách clone hoạt động trong Scratch giống hệt như thuật phân thân của Naruto. Chúng ta cần một nhân vật chính. Nhân vật này sẽ được lập trình để tạo ra các bản sao. Tiếp theo, ta sẽ lập trình cho các bản sao hoạt động thay cho bản chính. Khi các bản sao đã hoàn thành nhiệm vụ, chúng ta sẽ xoá chúng đi.
Khi nào thì có thể sử dụng Clone?
Khi chúng ta muốn nhiều nhân vật làm các hành động tương tự nhau thì ta có thể sử dụng Clone để tránh phải tạo nhiều nhân vật và lập trình lặp đi lặp lại.
Hướng dẫn lập trình để bản chính sinh ra các bản sao
Trong bài viết này, Sprite sẽ được hiểu là bản chính. Clone là các bản sao mà Sprite (bản chính) sinh ra.
Câu lệnh “create clone of myself” thuộc mục Control sẽ giúp tạo một bản sao. Nếu chúng ta muốn tạo ra nhiều bản sao, hãy cho câu lệnh này vào bên trong một câu lệnh lặp. Các bạn có thể sử dụng Repeat … times khi bạn biết chính xác số clone mà bạn muốn sinh ra. Nếu không rõ số lượng Clone muốn sinh ra, hãy dùng vòng lặp Forever và kết hợp thêm câu lệnh Wait để các bản sao không sinh ra quá nhanh.
Dưới đây là ví dụ phần lập trình cho sprite (bản chính) tạo ra các bản sao.
Hướng dẫn lập trình cho bản sao
Event duy nhất chúng ta có thể sử dụng cho bản sao là “When I start as a clone”. Event này có nghĩa là “Khi tôi bắt đầu là một bản sao”. Chỉ duy nhất những câu lệnh nối bên dưới event này mới được áp dụng cho Clone. Tất cả các câu lệnh bên dưới các event khác sẽ được áp dụng cho bản chính.
Ngoại trừ sự khác biệt trong cách sử dụng câu lệnh Event, tất cả các câu lệnh khác đều có thể áp dụng cho Clone. Bên dưới Event “When I start as a clone” chúng ta có thể lập trình cho clone chuyển động, kiểm tra chạm hoặc bất cứ việc gì chúng ta muốn. Những câu lệnh này sẽ được áp dụng cho toàn bộ các clone được sinh ra.
Có thể sử dụng nhiều event When I start as a clone để nhiều đoạn chương trình dành cho clone chạy song song với nhau.
Sau khi clone (bản sao) thực hiện xong nhiệm vụ của mình, chúng ta cần xoá chúng đi. Câu lệnh delete this clone giúp xoá một clone. Trong một chương trình, nếu chúng ta sinh ra quá nhiều clone mà không xoá chúng đi (sau khi chúng đã hoàn thành nhiệm vụ) thì chương trình sẽ dễ bị lag do phải xử lý quá nhiều nhân vật.
Dưới đây là một ví dụ về phần lập trình cho bản sao. Mỗi khi bản sao được sinh ra, chúng sẽ xuất hiện ở một vị trí bất kỳ phía trên của sân khấu. Sau đó chúng sẽ rơi xuống từ từ. Khi nào chạm đáy màn hình bên dưới thì chúng sẽ bị xoá đi (biến mất).
Lưu ý khi sử dụng Clone
- Chúng ta không lập trình cho bản chính hoạt động mà chỉ lập trình cho chúng sinh ra các bản sao. Vì vậy bản chính sẽ đứng yên trên sân khấu. Chúng ta có thể ẩn bản chính để không làm ảnh hưởng đến sự hoạt động của chương trình.
- Khi ẩn bản chính, các bản sao cũng sẽ thừa kế tính chất này của bản chính. Vì vậy bản sao cũng bị ẩn. Để bản sao hiện, chúng ta cần thêm câu lệnh Show phía dưới event When I start as a Clone
Project ví dụ về Clone (bản sao) trong Scratch
Link project: https://scratch.mit.edu/projects/400378468/
Nếu đã hiểu về khái niệm clone, các bạn có thể thực hành thêm các project có ứng dụng Clone như lập trình Pháo hoa
Pingback: Pháo hoa - Sử dụng Clone trong Scratch - Dạy & Học: Lập trình cho trẻ em
Pingback: Clone (Bản sao) trong Scratch - Dạy & Học: Lập trình cho trẻ em