Tìm hiểu Clone trong Scratch

Clone Là Gì?

Clone có nghĩa là bản sao. hú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 “Tạo bản sao của bản thân tôi” thuộc mục Điều khiển 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 Lặp lại … lần khi bạn biết chính xác số bản sao mà bạn muốn sinh ra. Nếu không rõ số lượng bản sao muốn sinh ra, hãy dùng vòng lặp Liên tục và kết hợp thêm câu lệnh Đợi để 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

Sự kiện duy nhất chúng ta có thể sử dụng cho bản sao 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 Sự kiện này mới được áp dụng cho Bản sao. Tất cả các câu lệnh bên dưới các sự kiện 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 bản sao. Bên dưới Event “Khi tôi bắt đầu là một bản sao” chúng ta có thể lập trình cho  sao 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 bản sao được sinh ra.

Có thể sử dụng nhiều event Khi tôi bắt đầu là một bản sao để nhiều đoạn chương trình dành cho bản sao 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 Xoá bản sao này giúp xoá một bản sao. 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ẽ lướt đi đến vị trí ngẫu nhiên trên sân khấu. Khi nào chạm cạnh sân khấu 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 Hiện phía dưới event Khi tôi bắt đầu là 1 bản sao

TÌM HIỂU VỀ CLONE NÂNG CAO

Ở phần này, chúng ta sẽ sử dụng clone một cách cao cấp hơn. Đó là phân biệt các clone với nhau và lập trình hành động riêng biệt cho các clone khác nhau.

Sprite (nhân vật) sẽ được hiểu là bản chính. Clone là các bản sao mà Sprite (bản chính) sinh ra.

  • Bản chính thì có thể sử dụng mọi câu lệnh Event trong mục Event như thông thường. Bản chính thì sẽ sử dụng câu lệnh “Tạo bản sao của bản thân tôi” để tạo bản sao.
  • Các hành động của bản sao thì sẽ được lập trình bên dưới câu lệnh Event “Khi tôi bắt đầu là một bản sao”. Việc lập trình hành động cho bản sao thì có thể thực hiện tương tự như nhân vật bình thường
  • Sau khi bản sao hoàn thành nhiệm vụ, chúng ta cần xoá chúng đi. Lưu ý: không ẩn (hide) các bản sao đã hoàn thành nhiệm vụ. Khi chương trình có quá nhiều clone thì sẽ dẫn đến hiện tượng lag.

Có Thể Phân Biệt Các Bản Sao (Clone) Với Nhau Không?

Có! Chúng ta có thể dùng costume (hình dáng) khác nhau để phân biệt các bản sao với nhau. Do đó, chúng ta cũng có thể dựa vào hình dáng khác nhau của Clone để lập trình các hành động khác nhau cho Clone.

Chúng ta sẽ thực hiện một ví dụ nhỏ để làm rõ điều này. Chú mèo Scratch sẽ có 4 costume là 4 màu sắc khác nhau. Chúng ta sẽ lập trình để mèo Scratch tạo ra 4 clone và mỗi clone sử dụng một costume khác nhau

Trong đoạn chương trình trên, chú mèo Scratch lần lượt di chuyển ra từng vị trí, đổi costume rồi tạo clone. Sau đó lại tiếp tục lặp lại công việc di chuyển ra vị trí mới, đổi cosutme rồi tạo clone. Như vậy chú mèo đã tạo ra 4 clone với 4 costume khác nhau.

Lưu ý: Trên màn hình kết quả, chỉ là 4 clone do chú mèo vừa tạo ra. Bản chính đã bị ẩn

Cách Phân Biệt Các Clone (Bản Sao)

Chúng ta sẽ tạo ra một đoạn chương trình nữa. Đoạn chương trình này sẽ kiểm tra xem clone có đang được click vào hay không. Nếu nó đang được click vào thì chúng ta sẽ tiếp tục kiểm tra xem costume của nó là costume số mấy. Và sau đó clone sẽ nói ra màu tương ứng với màu da của nó.

Nếu các clone có màu khác nhau nói ra màu khác nhau thì có nghĩa là chúng ta có thể phân biệt các clone với nhau.

Tham khảo bài viết của Nga Hoàng.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *