Hướng Dẫn Lập Trình Game “HỨNG QUÀ GIÁNG SINH” Bằng Scratch
Giới Thiệu
Chào mừng các lập trình viên tương lai!
Trong bài viết đặc biệt mùa lễ hội này, chúng ta sẽ cùng nhau kết hợp niềm đam mê lập trình và không khí Giáng Sinh để tạo ra một mini game siêu hấp dẫn: Ông Già Noel Hứng Quà (Christmas Gift Catcher). Dự án này sẽ giúp các bạn làm quen và củng cố các kỹ năng quan trọng trong Scratch như Biến số (Variables), Sự kiện (Events), và kỹ thuật Tạo Bản Sao (Cloning), nền tảng cốt lõi trong phát triển game.
Cùng bắt tay vào xây dựng trò chơi của riêng bạn ngay bây giờ!
PHẦN 1: Cấu Trúc Dự Án và Khởi Tạo Game
1.1. Chuẩn Bị Assets và Biến Số Cần Thiết
- Sprites (Nhân vật): Stage (Sân khấu), Santa (Ông Già Noel), Gift (Hộp Quà), Snowflake (Bông Tuyết), Sprite2 (Thông báo thắng).
- Biến số (Variables):
hộp quà: Dùng để lưu trữ điểm số của người chơi (số lượng quà hứng được). (Trong dự án, giá trị ban đầu được đặt là 3, sau đó được đặt lại là 0 khi bấm cờ xanh).Quà Đỏ,Quà Xanh,Số Hộp Quà: Các biến đã được khai báo nhưng không được sử dụng trong logic game chính, bạn có thể xóa hoặc dùng chúng để phát triển tính năng nâng cao sau này.
1.2. Khối Lệnh Khởi Đầu (Stage – Nhạc Nền)
Chọn Sprite Stage, lập trình nhạc nền chạy liên tục để tạo không khí:
| Khối Lệnh | Ý nghĩa |
When flag clicked | Bắt đầu chạy game. |
Forever | Lặp lại mãi mãi. |
Play sound "Jingle Bells" until done | Phát bản nhạc Jingle Bells, sau đó lặp lại ngay khi kết thúc. |
PHẦN 2: Lập Trình Các Chức Năng Cốt Lõi (Core Mechanics)
2.1. Lập Trình Hiệu Ứng Tuyết Rơi (Sprite: Snowflake)
Chúng ta sử dụng kỹ thuật Cloning để tạo ra một lượng tuyết rơi dày đặc mà không tốn tài nguyên máy.
A. Kịch bản Gốc (Tạo Bản Sao)
| Khối Lệnh | Ý nghĩa |
When flag clicked | Khi bắt đầu. |
Set size to 20% | Đặt kích thước tuyết nhỏ lại. |
Forever | Lặp lại liên tục việc sinh tuyết. |
Go to x (Pick random -220 to 220) y 200 | Di chuyển đến vị trí X ngẫu nhiên ở trên đỉnh màn hình (Y=200). |
Show | Hiển thị Sprite gốc tại vị trí này. |
Create clone of myself | Tạo ra một bản sao. |
Hide | Ẩn Sprite gốc (chỉ bản sao được hiển thị). |
Wait 0.2 secs | Đợi 0.2 giây rồi lặp lại (kiểm soát tốc độ tuyết rơi). |
B. Kịch bản Bản Sao (Rơi và Xóa)
| Khối Lệnh | Ý nghĩa |
When I start as a clone | Khi bản sao được tạo. |
Forever | Lặp lại quá trình rơi. |
Change y by -5 | Bông tuyết rơi xuống. |
If (y position < -170) then | Kiểm tra nếu tuyết chạm đáy màn hình. |
Delete this clone | Xóa bản sao để giải phóng bộ nhớ. |
Wait 0.1 secs | Giảm tốc độ xử lý trong vòng lặp. |
2.2. Lập Trình Điều Khiển Ông Già Noel (Sprite: Santa)
Santa được lập trình để di chuyển ngang theo phím mũi tên, có giới hạn.
| Khối Lệnh | Ý nghĩa |
When flag clicked | Bắt đầu. |
Go to x 0 y -125 | Đặt Santa ở vị trí xuất phát chính giữa phía dưới màn hình. |
Forever | Lặp lại việc kiểm tra di chuyển. |
If (key right arrow pressed) AND (x position < 120) then | Nếu bấm phải VÀ chưa chạm biên phải, di chuyển: |
Change x by 5 | Di chuyển sang phải. |
If (key left arrow pressed) AND (x position > -110) then | Nếu bấm trái VÀ chưa chạm biên trái, di chuyển: |
Change x by -5 | Di chuyển sang trái. |
2.3. Lập Trình Quà Rơi và Tính Điểm (Sprite: Gift)
A. Kịch bản Gốc (Sinh Quà)
- Sử dụng khối
Set hộp quà to 0khi bắt đầu. - Quà chỉ được sinh ra NẾU điểm
hộp quà < 10(Điều kiện thắng). - Quà thay đổi trang phục ngẫu nhiên (
Next costume) trước khi tạo bản sao (tạo ra quà xanh/quà đỏ). - Tạo một bản sao cứ sau
Wait 2 secs.
B. Kịch bản Bản Sao (Rơi và Va Chạm)
| Khối Lệnh | Ý nghĩa |
When I start as a clone | Khi bản sao (hộp quà) xuất hiện. |
Forever | Lặp lại quá trình rơi và kiểm tra va chạm. |
Change y by -7 | Hộp quà rơi xuống nhanh hơn tuyết. |
If (y position < -170) then | Nếu chạm đáy (bị hụt), xóa bản sao. |
If (touching Santa) then | Nếu Santa hứng được quà: |
Change hộp quà by 1 | Tăng điểm. |
If (hộp quà = 10) then | ĐIỀU KIỆN THẮNG: Nếu đủ 10 điểm: |
Broadcast "finished" | Phát tin báo thắng. |
Stop other scripts in sprite | Dừng việc sinh quà tiếp theo. |
Delete this clone | Xóa hộp quà vừa hứng. |
PHẦN 3: Hiển Thị Kết Thúc Trò Chơi
Lập Trình Màn Hình Chiến Thắng (Sprite: Sprite2)
- Ban đầu:
When flag clicked->Hide(ẩn đi). - Khi nhận tin “finished”:
Set size to 20%(Đặt kích thước ban đầu).Show(Hiển thị thông báo thắng).Repeat 6lần:Change size by 20(Tạo hiệu ứng phóng to, tạo cảm giác chiến thắng).
Tổng Kết
Dự án này là một ví dụ hoàn hảo về cách sử dụng kỹ thuật Cloning để quản lý nhiều đối tượng rơi (Tuyết và Quà) một cách hiệu quả. Chúc mừng bạn đã hoàn thành tựa game Giáng Sinh của riêng mình!





