Trong phần Mã lệnh (Code), chọn khối lệnh từ mục Điều khiển (Control):
tạo bản sao của chính tôi (create clone of myself)
🟡 Ví dụ:
khi nhấn vào lá cờ xanh
lặp lại 10 lần
tạo bản sao của chính tôi
đợi 1 giây
Bạn cần chỉ định nhân vật sẽ làm gì sau khi được sao chép, bằng khối:
khi bắt đầu là một bản sao (when I start as a clone)
🟢 Ví dụ:
khi bắt đầu là một bản sao
hiện
di chuyển 10 bước
📌 Gợi ý: Bạn có thể làm bản sao di chuyển, thay đổi màu sắc, xuất hiện ở vị trí ngẫu nhiên, v.v.
Sử dụng khối:
xóa bản sao này (delete this clone)
🔴 Ví dụ:
khi bắt đầu là một bản sao
lặp lại 10 lần
di chuyển 10 bước
đợi 0.1 giây
xóa bản sao này
Ví dụ: Trong game bắn súng, mỗi lần bạn bấm phím bắn, phải tạo ra một viên đạn. Nếu không dùng bản sao, bạn phải tạo sẵn 100 viên đạn riêng biệt – rất tốn công và khó quản lý.
Giải pháp: Dùng 1 sprite duy nhất, sau đó dùng tạo bản sao của chính tôi để tự động tạo nhiều viên đạn giống nhau.
Có thể tạo ra hiệu ứng liên tục như:
Đạn bắn liên tục
Mưa rơi
Quái vật sinh ra theo thời gian
Hiệu ứng nổ, sao rơi, pháo hoa
📌 Những thứ này xảy ra nhiều lần và không xác định trước số lượng → cần clone.
Mỗi bản sao có thể:
Di chuyển theo hướng riêng
Thay đổi màu sắc riêng
Tương tác riêng với nhân vật hoặc môi trường
🧪 Ví dụ:
khi bắt đầu là một bản sao
đặt hướng đến con trỏ chuột
di chuyển 5 bước mỗi lần
Kết quả là: → Mỗi bản sao bay về phía khác nhau.
Không cần viết riêng cho từng đối tượng.
Giảm số lượng sprite trong danh sách → dễ quản lý.
Khi chỉnh sửa, chỉ cần sửa 1 sprite gốc, tất cả bản sao sẽ theo.
Tiêu chí | Dùng bản sao (clone) | Tạo nhiều sprite riêng biệt |
---|---|---|
Số lượng code | Ít hơn | Nhiều hơn, khó sửa |
Quản lý sprite | Dễ (chỉ 1 sprite) | Rối (nhiều sprite) |
Tạo hiệu ứng động | Linh hoạt | Hạn chế |
Hiệu suất game | Tốt hơn | Chậm hơn khi sprite nhiều |
Ví dụ sử dụng | Đạn, mưa, kẻ địch, hiệu ứng nổ | Các nhân vật cố định (menu, boss...) |
Tình huống | Mô tả |
---|---|
🔫 Game bắn súng | Tạo đạn khi bấm phím |
🌧️ Mưa hoặc tuyết | Clone hạt mưa/tuyết rơi liên tục |
🧟♂️ Game zombie | Quái vật sinh ra liên tục và tấn công |
🎆 Pháo hoa | Clone hạt pháo khi phát nổ |
🍎 Game hứng vật | Clone vật rơi ngẫu nhiên để người chơi hứng |
💣 Bom phát nổ | Tạo clone vụ nổ từ sprite trung tâm |
📌 Tóm lại
Clone = Một cách tạo ra nhiều bản sao độc lập từ một sprite gốc, giúp game trở nên sống động, linh hoạt, dễ quản lý và chuyên nghiệp hơn.
Tại sao cần tạo bản sao (clone) trong Scratch khi làm game. Dưới đây là phân tích chi tiết về lý do, lợi ích, tình huống sử dụng, và so sánh với cách làm thủ công để bạn hiểu rõ hơn.